View Javadoc
1   /*
2    * Copyright 2012-2021 CodeLibs Project and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
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      //                                                                      Search Execute
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 }