/** * Cette m?thode est appel?e si l'aministeur clique sur l'icone de supprimer un utilisateur * * @param context contexte d'execution de la servlet * @param column id de l'utilisateur ? supprimer * @throws Exception Indique qu'une erreur s'est produite pendant le traitement */ public void listUsers_onDelete(ControlActionContext context, String id) throws IOException, ServletException { HashMap usersMap = (HashMap) context.session().getAttribute(PresentationConstantes.KEY_USERS_MAP); User user = (User) usersMap.get(new Integer(Integer.parseInt(id))); User userCourant = null; userCourant = (User) context.session().getAttribute(PresentationConstantes.KEY_USER); // Un utilisateur ne peut pas supprimer son compte if (((Integer) userCourant.getId()).compareTo(new Integer(id)) == 0) { context.addGlobalError("errors.admin.deleteCurrentUser"); context.forwardByName(PresentationConstantes.FORWARD_ERROR); return; } try { UserManager.getInstance().delete(user); context.addGlobalMessage("admin.listUsers.confirmationDel"); context.forwardByName(PresentationConstantes.FORWARD_DELETE_USER); } catch (NumberFormatException e) { context.addGlobalError("errors.persistance.delete"); context.forwardByName(PresentationConstantes.FORWARD_ERROR); } catch (PersistanceException e) { context.addGlobalError("errors.persistance.delete"); context.forwardByName(PresentationConstantes.FORWARD_ERROR); } catch (ForeignKeyException e) { context.addGlobalError("errors.persistance.delete"); context.forwardByName(PresentationConstantes.FORWARD_ERROR); } }
/** * @param context * @throws Exception */ private void loadListUsers(ActionContext context) throws Exception { logger.debug("AdminAction"); Collection dbData = null; Collection listUsersItems = null; UserItem userItem = null; // Initialisation du form si celui-ci est nul if (context.form() == null) { context.session().setAttribute(context.mapping().getAttribute(), new AdminForm()); } // R?cup?ration du form bean n?cessaire pour fournir les informations ? la JSP AdminForm adminForm = (AdminForm) context.form(); // R?cup?ration de la liste des utilisateurs dbData = UserManager.getInstance().getList(BusinessConstantes.TABLE_USER); // Constitue une liste d'UserItem ? partir des donn?es stock?es en BD Iterator iter = dbData.iterator(); listUsersItems = new ArrayList(); HashMap usersMap = new HashMap(); while (iter.hasNext()) { User user = (User) iter.next(); userItem = new UserItem(); userItem.setId(user.getId().toString()); userItem.setFirstName(user.getFirstName()); userItem.setLastName(user.getLastName()); userItem.setLogin(user.getLogin()); userItem.setRole(user.getRole().getCode()); listUsersItems.add(userItem); // Construction de la hash map stockant la liste des utilisateurs usersMap.put(user.getId(), user); } // Conversion de la liste en tableau d'items DisplayObject[] result = new UserItem[listUsersItems.size()]; listUsersItems.toArray(result); // Cr?ation de la liste initialis?e avec les valeurs ? afficher ListUsersModel model = new ListUsersModel(result); adminForm.setDataModelUser(model); // Sauvegarde d'une HashMap stockant la liste des utilisateurs context.session().setAttribute(PresentationConstantes.KEY_USERS_MAP, usersMap); }