1 19 20 package org.efs.openreports.actions.admin; 21 22 import java.util.ArrayList ; 23 import java.util.List ; 24 import java.util.Set ; 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 command; 49 private String submitType; 50 51 private int id; 52 private String name; 53 private String password; 54 private String passwordConfirm; 55 private String externalId; 56 private String email; 57 58 private int reportId; 59 private Set reports; 60 private List userAlerts; 61 private List 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 execute() 86 { 87 ReportUser user = null; 88 89 try 90 { 91 if (command.equals("edit")) 92 { 93 user = userProvider.getUser(new Integer (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 (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 e) 194 { 195 e.printStackTrace(); 196 addActionError(e.toString()); 197 return INPUT; 198 } 199 } 200 201 public String getCommand() 202 { 203 return command; 204 } 205 206 public void setCommand(String command) 207 { 208 this.command = command; 209 } 210 211 public String getPassword() 212 { 213 return password; 214 } 215 216 public String getSubmitType() 217 { 218 return submitType; 219 } 220 221 public String getName() 222 { 223 return name; 224 } 225 226 public void setPassword(String password) 227 { 228 this.password = password; 229 } 230 231 public void setSubmitType(String submitType) 232 { 233 this.submitType = submitType; 234 } 235 236 public void setName(String name) 237 { 238 this.name = name; 239 } 240 241 private List convertIdsToGroups(int[] ids) 242 { 243 if (ids == null) 244 return new ArrayList (); 245 246 List groups = new ArrayList (); 247 248 try 249 { 250 for (int i = 0; i < ids.length; i++) 251 { 252 ReportGroup group = 253 groupProvider.getReportGroup(new Integer (ids[i])); 254 groups.add(group); 255 } 256 } 257 catch (Exception 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 getReportGroups() 276 { 277 try 278 { 279 return groupProvider.getReportGroups(); 280 } 281 catch (Exception e) 282 { 283 addActionError(e.getMessage()); 284 return null; 285 } 286 } 287 288 public List 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 getEmail() 314 { 315 return email; 316 } 317 318 public void setEmail(String email) 319 { 320 this.email = email; 321 } 322 323 public String getExternalId() 324 { 325 return externalId; 326 } 327 328 public void setExternalId(String externalId) 329 { 330 this.externalId = externalId; 331 } 332 333 public String getPasswordConfirm() 334 { 335 return passwordConfirm; 336 } 337 338 public void setPasswordConfirm(String 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 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 [] getOperators() 514 { 515 return new String [] {ReportAlert.OPERATOR_EQUAL, ReportAlert.OPERATOR_GREATER, ReportAlert.OPERATOR_LESS}; 516 } 517 518 public List getAllAlerts() 519 { 520 try 521 { 522 return alertProvider.getReportAlerts(); 523 } 524 catch (Exception e) 525 { 526 addActionError(e.toString()); 527 return null; 528 } 529 } 530 531 public List getUserAlerts() 532 { 533 return userAlerts; 534 } 535 536 public void setAlertProvider(AlertProvider alertProvider) 537 { 538 this.alertProvider = alertProvider; 539 } 540 } | Popular Tags |