1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.app.web.admin;
17
18 import org.codelibs.fess.annotation.Secured;
19 import org.codelibs.fess.app.web.admin.accesstoken.AdminAccesstokenAction;
20 import org.codelibs.fess.app.web.admin.backup.AdminBackupAction;
21 import org.codelibs.fess.app.web.admin.badword.AdminBadwordAction;
22 import org.codelibs.fess.app.web.admin.boostdoc.AdminBoostdocAction;
23 import org.codelibs.fess.app.web.admin.crawlinginfo.AdminCrawlinginfoAction;
24 import org.codelibs.fess.app.web.admin.dashboard.AdminDashboardAction;
25 import org.codelibs.fess.app.web.admin.dataconfig.AdminDataconfigAction;
26 import org.codelibs.fess.app.web.admin.design.AdminDesignAction;
27 import org.codelibs.fess.app.web.admin.dict.AdminDictAction;
28 import org.codelibs.fess.app.web.admin.duplicatehost.AdminDuplicatehostAction;
29 import org.codelibs.fess.app.web.admin.elevateword.AdminElevatewordAction;
30 import org.codelibs.fess.app.web.admin.esreq.AdminEsreqAction;
31 import org.codelibs.fess.app.web.admin.failureurl.AdminFailureurlAction;
32 import org.codelibs.fess.app.web.admin.fileauth.AdminFileauthAction;
33 import org.codelibs.fess.app.web.admin.fileconfig.AdminFileconfigAction;
34 import org.codelibs.fess.app.web.admin.general.AdminGeneralAction;
35 import org.codelibs.fess.app.web.admin.group.AdminGroupAction;
36 import org.codelibs.fess.app.web.admin.joblog.AdminJoblogAction;
37 import org.codelibs.fess.app.web.admin.keymatch.AdminKeymatchAction;
38 import org.codelibs.fess.app.web.admin.labeltype.AdminLabeltypeAction;
39 import org.codelibs.fess.app.web.admin.log.AdminLogAction;
40 import org.codelibs.fess.app.web.admin.maintenance.AdminMaintenanceAction;
41 import org.codelibs.fess.app.web.admin.pathmap.AdminPathmapAction;
42 import org.codelibs.fess.app.web.admin.plugin.AdminPluginAction;
43 import org.codelibs.fess.app.web.admin.relatedcontent.AdminRelatedcontentAction;
44 import org.codelibs.fess.app.web.admin.relatedquery.AdminRelatedqueryAction;
45 import org.codelibs.fess.app.web.admin.reqheader.AdminReqheaderAction;
46 import org.codelibs.fess.app.web.admin.role.AdminRoleAction;
47 import org.codelibs.fess.app.web.admin.scheduler.AdminSchedulerAction;
48 import org.codelibs.fess.app.web.admin.searchlog.AdminSearchlogAction;
49 import org.codelibs.fess.app.web.admin.storage.AdminStorageAction;
50 import org.codelibs.fess.app.web.admin.suggest.AdminSuggestAction;
51 import org.codelibs.fess.app.web.admin.systeminfo.AdminSysteminfoAction;
52 import org.codelibs.fess.app.web.admin.user.AdminUserAction;
53 import org.codelibs.fess.app.web.admin.webauth.AdminWebauthAction;
54 import org.codelibs.fess.app.web.admin.webconfig.AdminWebconfigAction;
55 import org.codelibs.fess.app.web.admin.wizard.AdminWizardAction;
56 import org.codelibs.fess.app.web.base.FessAdminAction;
57 import org.codelibs.fess.mylasta.action.FessUserBean;
58 import org.lastaflute.web.Execute;
59 import org.lastaflute.web.response.HtmlResponse;
60
61 public class AdminAction extends FessAdminAction {
62
63 @Override
64 protected String getActionRole() {
65 return "admin";
66 }
67
68
69
70
71 @Execute
72 @Secured({
73 AdminDashboardAction.ROLE,
74 AdminDashboardAction.ROLE + VIEW,
75 AdminWizardAction.ROLE,
76 AdminWizardAction.ROLE + VIEW,
77 AdminGeneralAction.ROLE,
78 AdminGeneralAction.ROLE + VIEW,
79 AdminSchedulerAction.ROLE,
80 AdminSchedulerAction.ROLE + VIEW,
81 AdminDesignAction.ROLE,
82 AdminDesignAction.ROLE + VIEW,
83 AdminDictAction.ROLE,
84 AdminDictAction.ROLE + VIEW,
85 AdminAccesstokenAction.ROLE,
86 AdminAccesstokenAction.ROLE + VIEW,
87 AdminPluginAction.ROLE,
88 AdminPluginAction.ROLE + VIEW,
89 AdminStorageAction.ROLE,
90 AdminStorageAction.ROLE + VIEW,
91 AdminWebconfigAction.ROLE,
92 AdminWebconfigAction.ROLE + VIEW,
93 AdminFileconfigAction.ROLE,
94 AdminFileconfigAction.ROLE + VIEW,
95 AdminDataconfigAction.ROLE,
96 AdminDataconfigAction.ROLE + VIEW,
97 AdminLabeltypeAction.ROLE,
98 AdminLabeltypeAction.ROLE + VIEW,
99 AdminKeymatchAction.ROLE,
100 AdminKeymatchAction.ROLE + VIEW,
101 AdminBoostdocAction.ROLE,
102 AdminBoostdocAction.ROLE + VIEW,
103 AdminRelatedcontentAction.ROLE,
104 AdminRelatedcontentAction.ROLE + VIEW,
105 AdminRelatedqueryAction.ROLE,
106 AdminRelatedqueryAction.ROLE + VIEW,
107 AdminPathmapAction.ROLE,
108 AdminPathmapAction.ROLE + VIEW,
109 AdminWebauthAction.ROLE,
110 AdminWebauthAction.ROLE + VIEW,
111 AdminFileauthAction.ROLE,
112 AdminFileauthAction.ROLE + VIEW,
113 AdminReqheaderAction.ROLE,
114 AdminReqheaderAction.ROLE + VIEW,
115 AdminDuplicatehostAction.ROLE,
116 AdminDuplicatehostAction.ROLE + VIEW,
117 AdminUserAction.ROLE,
118 AdminUserAction.ROLE + VIEW,
119 AdminRoleAction.ROLE,
120 AdminRoleAction.ROLE + VIEW,
121 AdminGroupAction.ROLE,
122 AdminGroupAction.ROLE + VIEW,
123 AdminSuggestAction.ROLE,
124 AdminSuggestAction.ROLE + VIEW,
125 AdminElevatewordAction.ROLE,
126 AdminElevatewordAction.ROLE + VIEW,
127 AdminBadwordAction.ROLE,
128 AdminBadwordAction.ROLE + VIEW,
129 AdminSysteminfoAction.ROLE,
130 AdminSysteminfoAction.ROLE + VIEW,
131 AdminSearchlogAction.ROLE,
132 AdminSearchlogAction.ROLE + VIEW,
133 AdminJoblogAction.ROLE,
134 AdminJoblogAction.ROLE + VIEW,
135 AdminCrawlinginfoAction.ROLE,
136 AdminCrawlinginfoAction.ROLE + VIEW,
137 AdminLogAction.ROLE,
138 AdminLogAction.ROLE + VIEW,
139 AdminFailureurlAction.ROLE,
140 AdminFailureurlAction.ROLE + VIEW,
141 AdminBackupAction.ROLE,
142 AdminBackupAction.ROLE + VIEW,
143 AdminMaintenanceAction.ROLE,
144 AdminMaintenanceAction.ROLE + VIEW,
145 AdminEsreqAction.ROLE,
146 AdminEsreqAction.ROLE + VIEW,
147 AdminDashboardAction.ROLE,
148 AdminDashboardAction.ROLE + VIEW,
149 AdminWizardAction.ROLE,
150 AdminWizardAction.ROLE + VIEW,
151 AdminGeneralAction.ROLE,
152 AdminGeneralAction.ROLE + VIEW,
153 AdminSchedulerAction.ROLE,
154 AdminSchedulerAction.ROLE + VIEW,
155 AdminDesignAction.ROLE,
156 AdminDesignAction.ROLE + VIEW,
157 AdminDictAction.ROLE,
158 AdminDictAction.ROLE + VIEW,
159 AdminAccesstokenAction.ROLE,
160 AdminAccesstokenAction.ROLE + VIEW,
161 AdminPluginAction.ROLE,
162 AdminPluginAction.ROLE + VIEW,
163 AdminStorageAction.ROLE,
164 AdminStorageAction.ROLE + VIEW,
165 AdminWebconfigAction.ROLE,
166 AdminWebconfigAction.ROLE + VIEW,
167 AdminFileconfigAction.ROLE,
168 AdminFileconfigAction.ROLE + VIEW,
169 AdminDataconfigAction.ROLE,
170 AdminDataconfigAction.ROLE + VIEW,
171 AdminLabeltypeAction.ROLE,
172 AdminLabeltypeAction.ROLE + VIEW,
173 AdminKeymatchAction.ROLE,
174 AdminKeymatchAction.ROLE + VIEW,
175 AdminBoostdocAction.ROLE,
176 AdminBoostdocAction.ROLE + VIEW,
177 AdminRelatedcontentAction.ROLE,
178 AdminRelatedcontentAction.ROLE + VIEW,
179 AdminRelatedqueryAction.ROLE,
180 AdminRelatedqueryAction.ROLE + VIEW,
181 AdminPathmapAction.ROLE,
182 AdminPathmapAction.ROLE + VIEW,
183 AdminWebauthAction.ROLE,
184 AdminWebauthAction.ROLE + VIEW,
185 AdminFileauthAction.ROLE,
186 AdminFileauthAction.ROLE + VIEW,
187 AdminReqheaderAction.ROLE,
188 AdminReqheaderAction.ROLE + VIEW,
189 AdminDuplicatehostAction.ROLE,
190 AdminDuplicatehostAction.ROLE + VIEW,
191 AdminUserAction.ROLE,
192 AdminUserAction.ROLE + VIEW,
193 AdminRoleAction.ROLE,
194 AdminRoleAction.ROLE + VIEW,
195 AdminGroupAction.ROLE,
196 AdminGroupAction.ROLE + VIEW,
197 AdminSuggestAction.ROLE,
198 AdminSuggestAction.ROLE + VIEW,
199 AdminElevatewordAction.ROLE,
200 AdminElevatewordAction.ROLE + VIEW,
201 AdminBadwordAction.ROLE,
202 AdminBadwordAction.ROLE + VIEW,
203 AdminSysteminfoAction.ROLE,
204 AdminSysteminfoAction.ROLE + VIEW,
205 AdminSearchlogAction.ROLE,
206 AdminSearchlogAction.ROLE + VIEW,
207 AdminJoblogAction.ROLE,
208 AdminJoblogAction.ROLE + VIEW,
209 AdminCrawlinginfoAction.ROLE,
210 AdminCrawlinginfoAction.ROLE + VIEW,
211 AdminLogAction.ROLE,
212 AdminLogAction.ROLE + VIEW,
213 AdminFailureurlAction.ROLE,
214 AdminFailureurlAction.ROLE + VIEW,
215 AdminBackupAction.ROLE,
216 AdminBackupAction.ROLE + VIEW,
217 AdminMaintenanceAction.ROLE,
218 AdminMaintenanceAction.ROLE + VIEW,
219 AdminEsreqAction.ROLE,
220 AdminEsreqAction.ROLE + VIEW,
221 AdminDashboardAction.ROLE,
222 AdminDashboardAction.ROLE + VIEW,
223 AdminWizardAction.ROLE,
224 AdminWizardAction.ROLE + VIEW,
225 AdminGeneralAction.ROLE,
226 AdminGeneralAction.ROLE + VIEW,
227 AdminSchedulerAction.ROLE,
228 AdminSchedulerAction.ROLE + VIEW,
229 AdminDesignAction.ROLE,
230 AdminDesignAction.ROLE + VIEW,
231 AdminDictAction.ROLE,
232 AdminDictAction.ROLE + VIEW,
233 AdminAccesstokenAction.ROLE,
234 AdminAccesstokenAction.ROLE + VIEW,
235 AdminPluginAction.ROLE,
236 AdminPluginAction.ROLE + VIEW,
237 AdminStorageAction.ROLE,
238 AdminStorageAction.ROLE + VIEW,
239 AdminWebconfigAction.ROLE,
240 AdminWebconfigAction.ROLE + VIEW,
241 AdminFileconfigAction.ROLE,
242 AdminFileconfigAction.ROLE + VIEW,
243 AdminDataconfigAction.ROLE,
244 AdminDataconfigAction.ROLE + VIEW,
245 AdminLabeltypeAction.ROLE,
246 AdminLabeltypeAction.ROLE + VIEW,
247 AdminKeymatchAction.ROLE,
248 AdminKeymatchAction.ROLE + VIEW,
249 AdminBoostdocAction.ROLE,
250 AdminBoostdocAction.ROLE + VIEW,
251 AdminRelatedcontentAction.ROLE,
252 AdminRelatedcontentAction.ROLE + VIEW,
253 AdminRelatedqueryAction.ROLE,
254 AdminRelatedqueryAction.ROLE + VIEW,
255 AdminPathmapAction.ROLE,
256 AdminPathmapAction.ROLE + VIEW,
257 AdminWebauthAction.ROLE,
258 AdminWebauthAction.ROLE + VIEW,
259 AdminFileauthAction.ROLE,
260 AdminFileauthAction.ROLE + VIEW,
261 AdminReqheaderAction.ROLE,
262 AdminReqheaderAction.ROLE + VIEW,
263 AdminDuplicatehostAction.ROLE,
264 AdminDuplicatehostAction.ROLE + VIEW,
265 AdminUserAction.ROLE,
266 AdminUserAction.ROLE + VIEW,
267 AdminRoleAction.ROLE,
268 AdminRoleAction.ROLE + VIEW,
269 AdminGroupAction.ROLE,
270 AdminGroupAction.ROLE + VIEW,
271 AdminSuggestAction.ROLE,
272 AdminSuggestAction.ROLE + VIEW,
273 AdminElevatewordAction.ROLE,
274 AdminElevatewordAction.ROLE + VIEW,
275 AdminBadwordAction.ROLE,
276 AdminBadwordAction.ROLE + VIEW,
277 AdminSysteminfoAction.ROLE,
278 AdminSysteminfoAction.ROLE + VIEW,
279 AdminSearchlogAction.ROLE,
280 AdminSearchlogAction.ROLE + VIEW,
281 AdminJoblogAction.ROLE,
282 AdminJoblogAction.ROLE + VIEW,
283 AdminCrawlinginfoAction.ROLE,
284 AdminCrawlinginfoAction.ROLE + VIEW,
285 AdminLogAction.ROLE,
286 AdminLogAction.ROLE + VIEW,
287 AdminFailureurlAction.ROLE,
288 AdminFailureurlAction.ROLE + VIEW,
289 AdminBackupAction.ROLE,
290 AdminBackupAction.ROLE + VIEW,
291 AdminMaintenanceAction.ROLE,
292 AdminMaintenanceAction.ROLE + VIEW,
293 AdminEsreqAction.ROLE,
294 AdminEsreqAction.ROLE + VIEW,
295
296 })
297 public HtmlResponse index() {
298 return redirect(getUserBean().map(user -> {
299 final Class<? extends FessAdminAction> actionClass = getAdminActionClass(user);
300 if (actionClass != null) {
301 return actionClass;
302 }
303 return AdminDashboardAction.class;
304 }).orElse(AdminDashboardAction.class));
305 }
306
307 public static Class<? extends FessAdminAction> getAdminActionClass(final FessUserBean user) {
308 if (user.hasRoles(getActionRoles(AdminDashboardAction.ROLE))) {
309 return AdminDashboardAction.class;
310 }
311 if (user.hasRoles(getActionRoles(AdminWizardAction.ROLE))) {
312 return AdminWizardAction.class;
313 }
314 if (user.hasRoles(getActionRoles(AdminGeneralAction.ROLE))) {
315 return AdminGeneralAction.class;
316 } else if (user.hasRoles(getActionRoles(AdminSchedulerAction.ROLE))) {
317 return AdminSchedulerAction.class;
318 } else if (user.hasRoles(getActionRoles(AdminDesignAction.ROLE))) {
319 return AdminDesignAction.class;
320 } else if (user.hasRoles(getActionRoles(AdminDictAction.ROLE))) {
321 return AdminDictAction.class;
322 } else if (user.hasRoles(getActionRoles(AdminAccesstokenAction.ROLE))) {
323 return AdminAccesstokenAction.class;
324 } else if (user.hasRoles(getActionRoles(AdminPluginAction.ROLE))) {
325 return AdminPluginAction.class;
326 } else if (user.hasRoles(getActionRoles(AdminStorageAction.ROLE))) {
327 return AdminStorageAction.class;
328 } else if (user.hasRoles(getActionRoles(AdminWebconfigAction.ROLE))) {
329 return AdminWebconfigAction.class;
330 } else if (user.hasRoles(getActionRoles(AdminFileconfigAction.ROLE))) {
331 return AdminFileconfigAction.class;
332 } else if (user.hasRoles(getActionRoles(AdminDataconfigAction.ROLE))) {
333 return AdminDataconfigAction.class;
334 } else if (user.hasRoles(getActionRoles(AdminLabeltypeAction.ROLE))) {
335 return AdminLabeltypeAction.class;
336 } else if (user.hasRoles(getActionRoles(AdminKeymatchAction.ROLE))) {
337 return AdminKeymatchAction.class;
338 } else if (user.hasRoles(getActionRoles(AdminBoostdocAction.ROLE))) {
339 return AdminBoostdocAction.class;
340 } else if (user.hasRoles(getActionRoles(AdminRelatedcontentAction.ROLE))) {
341 return AdminRelatedcontentAction.class;
342 } else if (user.hasRoles(getActionRoles(AdminRelatedqueryAction.ROLE))) {
343 return AdminRelatedqueryAction.class;
344 } else if (user.hasRoles(getActionRoles(AdminPathmapAction.ROLE))) {
345 return AdminPathmapAction.class;
346 } else if (user.hasRoles(getActionRoles(AdminWebauthAction.ROLE))) {
347 return AdminWebauthAction.class;
348 } else if (user.hasRoles(getActionRoles(AdminFileauthAction.ROLE))) {
349 return AdminFileauthAction.class;
350 } else if (user.hasRoles(getActionRoles(AdminReqheaderAction.ROLE))) {
351 return AdminReqheaderAction.class;
352 } else if (user.hasRoles(getActionRoles(AdminDuplicatehostAction.ROLE))) {
353 return AdminDuplicatehostAction.class;
354 } else if (user.hasRoles(getActionRoles(AdminUserAction.ROLE))) {
355 return AdminUserAction.class;
356 } else if (user.hasRoles(getActionRoles(AdminRoleAction.ROLE))) {
357 return AdminRoleAction.class;
358 } else if (user.hasRoles(getActionRoles(AdminGroupAction.ROLE))) {
359 return AdminGroupAction.class;
360 } else if (user.hasRoles(getActionRoles(AdminSuggestAction.ROLE))) {
361 return AdminSuggestAction.class;
362 } else if (user.hasRoles(getActionRoles(AdminElevatewordAction.ROLE))) {
363 return AdminElevatewordAction.class;
364 } else if (user.hasRoles(getActionRoles(AdminBadwordAction.ROLE))) {
365 return AdminBadwordAction.class;
366 } else if (user.hasRoles(getActionRoles(AdminSysteminfoAction.ROLE))) {
367 return AdminSysteminfoAction.class;
368 } else if (user.hasRoles(getActionRoles(AdminSearchlogAction.ROLE))) {
369 return AdminSearchlogAction.class;
370 } else if (user.hasRoles(getActionRoles(AdminJoblogAction.ROLE))) {
371 return AdminJoblogAction.class;
372 } else if (user.hasRoles(getActionRoles(AdminCrawlinginfoAction.ROLE))) {
373 return AdminCrawlinginfoAction.class;
374 } else if (user.hasRoles(getActionRoles(AdminLogAction.ROLE))) {
375 return AdminLogAction.class;
376 } else if (user.hasRoles(getActionRoles(AdminFailureurlAction.ROLE))) {
377 return AdminFailureurlAction.class;
378 } else if (user.hasRoles(getActionRoles(AdminBackupAction.ROLE))) {
379 return AdminBackupAction.class;
380 } else if (user.hasRoles(getActionRoles(AdminMaintenanceAction.ROLE))) {
381 return AdminMaintenanceAction.class;
382 } else if (user.hasRoles(getActionRoles(AdminEsreqAction.ROLE))) {
383 return AdminEsreqAction.class;
384 }
385 return null;
386 }
387
388 private static String[] getActionRoles(final String role) {
389 return new String[] { role, role + VIEW };
390 }
391
392 }