KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > efs > openreports > actions > admin > EditUserAction


1 /*
2  * Copyright (C) 2002 Erik Swenson - erik@oreports.com
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the Free
6  * Software Foundation; either version 2 of the License, or (at your option)
7  * any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16  * Place - Suite 330, Boston, MA 02111-1307, USA.
17  *
18  */

19
20 package org.efs.openreports.actions.admin;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.List JavaDoc;
24 import java.util.Set JavaDoc;
25
26 import org.apache.log4j.Logger;
27 import org.efs.openreports.ORStatics;
28 import org.efs.openreports.objects.ReportAlert;
29 import org.efs.openreports.objects.ReportGroup;
30 import org.efs.openreports.objects.ReportUser;
31 import org.efs.openreports.providers.AlertProvider;
32 import org.efs.openreports.providers.AlertProviderAware;
33 import org.efs.openreports.providers.GroupProvider;
34 import org.efs.openreports.providers.GroupProviderAware;
35 import org.efs.openreports.providers.ReportProvider;
36 import org.efs.openreports.providers.ReportProviderAware;
37 import org.efs.openreports.providers.UserProvider;
38 import org.efs.openreports.providers.UserProviderAware;
39 import org.efs.openreports.util.LocalStrings;
40
41 import com.opensymphony.xwork.ActionContext;
42 import com.opensymphony.xwork.ActionSupport;
43
44 public class EditUserAction extends ActionSupport implements UserProviderAware, GroupProviderAware, ReportProviderAware, AlertProviderAware
45 {
46     protected static Logger log = Logger.getLogger(EditUserAction.class);
47
48     private String JavaDoc command;
49     private String JavaDoc submitType;
50
51     private int id;
52     private String JavaDoc name;
53     private String JavaDoc password;
54     private String JavaDoc passwordConfirm;
55     private String JavaDoc externalId;
56     private String JavaDoc email;
57     
58     private int reportId;
59     private Set JavaDoc reports;
60     private List JavaDoc userAlerts;
61     private List JavaDoc reportGroups;
62     private int[] groupIds;
63     
64     private boolean scheduler;
65     private boolean logViewer;
66     private boolean rootAdmin;
67     private boolean reportAdmin;
68     private boolean dataSourceAdmin;
69     private boolean parameterAdmin;
70     private boolean chartAdmin;
71     private boolean userAdmin;
72     private boolean groupAdmin;
73     private boolean alertAdmin;
74     private boolean dashboard;
75     private boolean alerts;
76     private boolean uploader;
77     private boolean schedulerAdmin;
78     private boolean advancedScheduler;
79     
80     private UserProvider userProvider;
81     private GroupProvider groupProvider;
82     private ReportProvider reportProvider;
83     private AlertProvider alertProvider;
84
85     public String JavaDoc execute()
86     {
87         ReportUser user = null;
88     
89         try
90         {
91             if (command.equals("edit"))
92             {
93                 user = userProvider.getUser(new Integer JavaDoc(id));
94             }
95             else
96             {
97                 user = new ReportUser();
98             }
99             
100             reports = user.getReports();
101             userAlerts = user.getAlerts();
102
103             if (command.equals("edit") && submitType == null)
104             {
105                 id = user.getId().intValue();
106                 name = user.getName();
107                 password = user.getPassword();
108                 passwordConfirm = user.getPassword();
109                 externalId = user.getExternalId();
110                 email = user.getEmail();
111                 reportGroups = user.getGroups();
112                 scheduler = user.isScheduler();
113                 advancedScheduler = user.isAdvancedScheduler();
114                 logViewer = user.isLogViewer();
115                 rootAdmin= user.isRootAdmin();
116                 reportAdmin = user.isReportAdmin();
117                 dataSourceAdmin = user.isDataSourceAdmin();
118                 parameterAdmin = user.isParameterAdmin();
119                 userAdmin = user.isUserAdmin();
120                 groupAdmin = user.isGroupAdmin();
121                 chartAdmin = user.isChartAdmin();
122                 alertAdmin = user.isAlertAdmin();
123                 dashboard = user.isDashboardUser();
124                 alerts = user.isAlertUser();
125                 uploader = user.isUploader();
126                 schedulerAdmin = user.isSchedulerAdmin();
127                 
128                 if (user.getDefaultReport() != null)
129                 {
130                     reportId = user.getDefaultReport().getId().intValue();
131                 }
132                 
133                 groupIds = null;
134             }
135
136             if (submitType == null)
137                 return INPUT;
138             
139             if (password == null || password.trim().length() < 1 || !password.equals(passwordConfirm))
140             {
141                 addActionError(LocalStrings.getString(LocalStrings.ERROR_INVALID_PASSWORD));
142                 return INPUT;
143             }
144
145             user.setName(name);
146             user.setPassword(password);
147             user.setExternalId(externalId);
148             user.setEmail(email);
149             user.setGroups(convertIdsToGroups(groupIds));
150             user.setAlertAdmin(alertAdmin);
151             user.setChartAdmin(chartAdmin);
152             user.setDataSourceAdmin(dataSourceAdmin);
153             user.setGroupAdmin(groupAdmin);
154             user.setLogViewer(logViewer);
155             user.setParameterAdmin(parameterAdmin);
156             user.setReportAdmin(reportAdmin);
157             user.setRootAdmin(rootAdmin);
158             user.setScheduler(scheduler);
159             user.setAdvancedScheduler(advancedScheduler);
160             user.setUserAdmin(userAdmin);
161             user.setDashboardUser(dashboard);
162             user.setAlertUser(alerts);
163             user.setUploader(uploader);
164             user.setSchedulerAdmin(schedulerAdmin);
165             
166             if (reportId > 0)
167             {
168                 user.setDefaultReport(reportProvider.getReport(new Integer JavaDoc(reportId)));
169             }
170             else
171             {
172                 user.setDefaultReport(null);
173             }
174
175             if (command.equals("edit"))
176             {
177                 userProvider.updateUser(user);
178                 
179                 ReportUser currentUser = (ReportUser) ActionContext.getContext().getSession().get(ORStatics.REPORT_USER);
180                 if ((currentUser != null) && (currentUser.getId().equals(user.getId())))
181                 {
182                     ActionContext.getContext().getSession().put(ORStatics.REPORT_USER, user);
183                 }
184             }
185
186             if (command.equals("add"))
187             {
188                 user = userProvider.insertUser(user);
189             }
190
191             return SUCCESS;
192         }
193         catch (Exception JavaDoc e)
194         {
195             e.printStackTrace();
196             addActionError(e.toString());
197             return INPUT;
198         }
199     }
200
201     public String JavaDoc getCommand()
202     {
203         return command;
204     }
205
206     public void setCommand(String JavaDoc command)
207     {
208         this.command = command;
209     }
210
211     public String JavaDoc getPassword()
212     {
213         return password;
214     }
215
216     public String JavaDoc getSubmitType()
217     {
218         return submitType;
219     }
220
221     public String JavaDoc getName()
222     {
223         return name;
224     }
225
226     public void setPassword(String JavaDoc password)
227     {
228         this.password = password;
229     }
230
231     public void setSubmitType(String JavaDoc submitType)
232     {
233         this.submitType = submitType;
234     }
235
236     public void setName(String JavaDoc name)
237     {
238         this.name = name;
239     }
240
241     private List JavaDoc convertIdsToGroups(int[] ids)
242     {
243         if (ids == null)
244             return new ArrayList JavaDoc();
245
246         List JavaDoc groups = new ArrayList JavaDoc();
247
248         try
249         {
250             for (int i = 0; i < ids.length; i++)
251             {
252                 ReportGroup group =
253                     groupProvider.getReportGroup(new Integer JavaDoc(ids[i]));
254                 groups.add(group);
255             }
256         }
257         catch (Exception JavaDoc e)
258         {
259             addActionError(e.toString());
260         }
261
262         return groups;
263     }
264
265     public int[] getGroupIds()
266     {
267         return groupIds;
268     }
269
270     public void setGroupIds(int[] groupIds)
271     {
272         this.groupIds = groupIds;
273     }
274
275     public List JavaDoc getReportGroups()
276     {
277         try
278         {
279             return groupProvider.getReportGroups();
280         }
281         catch (Exception JavaDoc e)
282         {
283             addActionError(e.getMessage());
284             return null;
285         }
286     }
287
288     public List JavaDoc getReportGroupsForUser()
289     {
290         return reportGroups;
291     }
292
293     public int getId()
294     {
295         return id;
296     }
297
298     public void setId(int id)
299     {
300         this.id = id;
301     }
302
303     public void setGroupProvider(GroupProvider groupProvider)
304     {
305         this.groupProvider = groupProvider;
306     }
307
308     public void setUserProvider(UserProvider userProvider)
309     {
310         this.userProvider = userProvider;
311     }
312
313     public String JavaDoc getEmail()
314     {
315         return email;
316     }
317
318     public void setEmail(String JavaDoc email)
319     {
320         this.email = email;
321     }
322
323     public String JavaDoc getExternalId()
324     {
325         return externalId;
326     }
327
328     public void setExternalId(String JavaDoc externalId)
329     {
330         this.externalId = externalId;
331     }
332
333     public String JavaDoc getPasswordConfirm()
334     {
335         return passwordConfirm;
336     }
337
338     public void setPasswordConfirm(String JavaDoc passwordConfirm)
339     {
340         this.passwordConfirm = passwordConfirm;
341     }
342
343     public int getReportId()
344     {
345         return reportId;
346     }
347
348     public void setReportId(int reportId)
349     {
350         this.reportId = reportId;
351     }
352
353     public Set JavaDoc getReports()
354     {
355         return reports;
356     }
357
358     public void setReportProvider(ReportProvider reportProvider)
359     {
360         this.reportProvider = reportProvider;
361     }
362
363     public boolean isChartAdmin()
364     {
365         return chartAdmin;
366     }
367
368     public void setChartAdmin(boolean chartAdmin)
369     {
370         this.chartAdmin = chartAdmin;
371     }
372
373     public boolean isDataSourceAdmin()
374     {
375         return dataSourceAdmin;
376     }
377
378     public void setDataSourceAdmin(boolean dataSourceAdmin)
379     {
380         this.dataSourceAdmin = dataSourceAdmin;
381     }
382
383     public boolean isGroupAdmin()
384     {
385         return groupAdmin;
386     }
387
388     public void setGroupAdmin(boolean groupAdmin)
389     {
390         this.groupAdmin = groupAdmin;
391     }
392
393     public boolean isLogViewer()
394     {
395         return logViewer;
396     }
397
398     public void setLogViewer(boolean logViewer)
399     {
400         this.logViewer = logViewer;
401     }
402
403     public boolean isParameterAdmin()
404     {
405         return parameterAdmin;
406     }
407
408     public void setParameterAdmin(boolean parameterAdmin)
409     {
410         this.parameterAdmin = parameterAdmin;
411     }
412
413     public boolean isReportAdmin()
414     {
415         return reportAdmin;
416     }
417
418     public void setReportAdmin(boolean reportAdmin)
419     {
420         this.reportAdmin = reportAdmin;
421     }
422
423     public boolean isRootAdmin()
424     {
425         return rootAdmin;
426     }
427
428     public void setRootAdmin(boolean rootAdmin)
429     {
430         this.rootAdmin = rootAdmin;
431     }
432
433     public boolean isScheduler()
434     {
435         return scheduler;
436     }
437
438     public void setScheduler(boolean scheduler)
439     {
440         this.scheduler = scheduler;
441     }
442
443     public boolean isAdvancedScheduler()
444     {
445         return advancedScheduler;
446     }
447
448     public void setAdvancedScheduler(boolean advancedScheduler)
449     {
450         this.advancedScheduler = advancedScheduler;
451     }
452
453     public boolean isUserAdmin()
454     {
455         return userAdmin;
456     }
457
458     public void setUserAdmin(boolean userAdmin)
459     {
460         this.userAdmin = userAdmin;
461     }
462
463     public boolean isAlertAdmin()
464     {
465         return alertAdmin;
466     }
467
468     public void setAlertAdmin(boolean alertAdmin)
469     {
470         this.alertAdmin = alertAdmin;
471     }
472
473     public boolean isDashboard()
474     {
475         return dashboard;
476     }
477
478     public void setDashboard(boolean dashboard)
479     {
480         this.dashboard = dashboard;
481     }
482
483     public boolean isAlerts()
484     {
485         return alerts;
486     }
487
488     public void setAlerts(boolean alerts)
489     {
490         this.alerts = alerts;
491     }
492
493     public boolean isUploader()
494     {
495         return uploader;
496     }
497
498     public void setUploader(boolean uploader)
499     {
500         this.uploader = uploader;
501     }
502
503     public boolean isSchedulerAdmin()
504     {
505         return schedulerAdmin;
506     }
507
508     public void setSchedulerAdmin(boolean schedulerAdmin)
509     {
510         this.schedulerAdmin = schedulerAdmin;
511     }
512     
513     public String JavaDoc[] getOperators()
514     {
515         return new String JavaDoc[] {ReportAlert.OPERATOR_EQUAL, ReportAlert.OPERATOR_GREATER, ReportAlert.OPERATOR_LESS};
516     }
517     
518     public List JavaDoc getAllAlerts()
519     {
520         try
521         {
522             return alertProvider.getReportAlerts();
523         }
524         catch (Exception JavaDoc e)
525         {
526             addActionError(e.toString());
527             return null;
528         }
529     }
530
531     public List JavaDoc getUserAlerts()
532     {
533         return userAlerts;
534     }
535
536     public void setAlertProvider(AlertProvider alertProvider)
537     {
538         this.alertProvider = alertProvider;
539     }
540 }
Popular Tags