@CacheNameRemove(name = AppConstants.DEFAULT_CACHENAME) @Before({AdminValidator.UpdateRoleValidator.class, Tx.class}) public void updateRole() { keepModel(UserRole.class); UserRole userRole = getModel(UserRole.class); boolean result = true; List<UserRole> aroles = UserRole.dao.findBy("`userRole`.user_id=" + userRole.get("user_id")); boolean mustAdd = true; if (!ValidateUtils.me().isNullOrEmpty(aroles)) { // delete for (UserRole ar : aroles) { if (ar.get("role_id") != userRole.get("role_id")) { ar.delete(); } else { mustAdd = false; } } } // add if (mustAdd) { result = result && userRole.save(); } if (result) setAttr("state", "success"); else setAttr("state", "failure"); dynaRender("/view/admin/user.ftl"); }
public User addRole(Role role) { if (ValidateKit.isNullOrEmpty(role)) { role = Role.dao.findFirstBy("`role`.value='R_USER'"); if (ValidateKit.isNullOrEmpty(role)) { throw new NullPointerException("角色不存在"); } } UserRole userRole = new UserRole(); userRole.set("user_id", this.get("id")); userRole.set("role_id", role.get("id")); userRole.save(); return this; }