public static final boolean isSupperAdmin() { User user = UserInterceptor.getThreadLocalUser(); RoleService roleService = Jboot.bean(RoleService.class); return roleService.isSupperAdmin(user.getId()); } }
public void doAddGroupRolePermission(long roleId, String groupId) { List<Long> permIds = new ArrayList<Long>(); List<Permission> permissionList = permissionService.findListByNode(groupId.replace("...", "")); for (Permission permission : permissionList) { //先清空再添加 if (!roleService.hasPermission(roleId, permission.getId())) { roleService.addPermission(roleId, permission.getId()); } permIds.add(permission.getId()); } renderJson(Ret.ok().set("permissionIds", permIds)); }
public void doDelRolePermission(long roleId, long permissionId) { roleService.delPermission(roleId, permissionId); renderJson(Ret.ok()); }
public void rolePermissions() { Long id = getParaToLong(); if (id == null) { renderError(404); return; } Role role = roleService.findById(id); setAttr("role", role); String type = getPara("type"); List<Permission> permissions = type == null ? permissionService.findAll() : permissionService.findListByType(type); Map<String, List<Permission>> permissionGroup = PermissionKits.groupPermission(permissions); Map<String, Boolean> groupCheck = new HashMap(); for (String groupKey : permissionGroup.keySet()) { List<Permission> permList = permissionGroup.get(groupKey); for (Permission permission : permList) { boolean hasPerm = roleService.hasPermission(role.getId(), permission.getId()); if (!hasPerm) { groupCheck.put(groupKey, false); break; } else { groupCheck.put(groupKey, true); } } } setAttr("groupCheck", groupCheck); setAttr("permissionGroup", permissionGroup); render("user/role_permissions.html"); }
@AdminMenu(text = "角色", groupId = JPressConsts.SYSTEM_MENU_USER, order = 5) public void role() { List<Role> roles = roleService.findAll(); setAttr("roles", roles); render("user/role.html"); }
public void doAddRolePermission(long roleId, long permissionId) { roleService.addPermission(roleId, permissionId); renderJson(Ret.ok()); }
/** * 删除角色 */ public void doRoleDel() { roleService.deleteById(getIdPara()); renderJson(Ret.ok()); }
@Override public void onRender(Env env, Scope scope, Writer writer) { User user = UserInterceptor.getThreadLocalUser(); if (user == null || !user.isStatusOk()) { return; } Set<String> roles = StrUtils.splitToSet(getPara(0, scope), ","); if (roles == null || roles.size() == 0) { throw new IllegalArgumentException("#anyRole(...) argument must not be empty"); } if (roleService.hasAnyRole(user.getId(), roles.toArray(new String[]{}))) { renderBody(env, scope, writer); } } }
@ActionKey(USER_ROLE_EDIT_ACTION) public void roleEdit() { Long id = getParaToLong(); if (id != null) { setAttr("role", roleService.findById(id)); } render("user/role_edit.html"); }
/** * 批量删除角色 */ public void doRoleDelByIds() { String ids = getPara("ids"); if (StrUtils.isBlank(ids)) { renderJson(Ret.fail()); return; } Set<String> idsSet = StrUtils.splitToSet(ids, ","); if (idsSet == null || idsSet.isEmpty()) { renderJson(Ret.fail()); return; } render(roleService.deleteByIds(idsSet.toArray()) ? Ret.ok() : Ret.fail()); }
public void doUpdateUserRoles() { Long userId = getParaToLong("userId"); if (getLoginedUser().getId().equals(userId)) { renderJson(Ret.fail().set("message", "不能修改自己的角色")); return; } Long[] roleIds = getParaValuesToLong("roleId"); roleService.doResetUserRoles(userId, roleIds); renderJson(Ret.ok()); }
/** * 批量删除角色 */ public void doChangeRoleByIds() { String ids = getPara("ids"); if (StrUtils.isBlank(ids)) { renderJson(Ret.fail()); return; } Set<String> idsSet = StrUtils.splitToSet(ids, ","); if (idsSet == null || idsSet.isEmpty()) { renderJson(Ret.fail()); return; } Long roleId = getParaToLong("roleId"); if (roleId == null || roleId <= 0) { renderJson(Ret.fail()); return; } render(roleService.doChangeRoleByIds(roleId, idsSet.toArray()) ? Ret.ok() : Ret.fail()); }
private boolean exeOtherAction(User user) { String action = getPara("action", "base"); if ("utm".equals(action)) { Page<Utm> page = utmService._paginateByUserId(getPagePara(), 20, user.getId()); setAttr("page", page); } if ("role".equals(action)) { //不是超级管理员,不让修改用户角色 if (permissionService.hasPermission(getLoginedUser().getId(), USER_ROLE_EDIT_ACTION) == false) { renderErrorForNoPermission(); return false; } List<Role> roles = roleService.findAll(); setAttr("roles", roles); } return true; }
@Override public boolean hasPermission(long userId, String actionKey) { User user = userService.findById(userId); if (user == null || !user.isStatusOk()) { return false; } if (roleService.isSupperAdmin(userId)) { return true; } List<Permission> permissions = findPermissionListByUserId(userId); if (permissions == null || permissions.isEmpty()) { return false; } for (Permission permission : permissions) { if (permission.getActionKey().equals(actionKey)) { return true; } } return false; }
@AdminMenu(text = "用户管理", groupId = JPressConsts.SYSTEM_MENU_USER, order = 0) public void index() { Page<User> page = userService._paginate(getPagePara(), 10, getPara("username"), getPara("email"), getPara("status")); int lockedCount = userService.findCountByStatus(User.STATUS_LOCK); int regCount = userService.findCountByStatus(User.STATUS_REG); int okCount = userService.findCountByStatus(User.STATUS_OK); setAttr("lockedCount", lockedCount); setAttr("regCount", regCount); setAttr("okCount", okCount); setAttr("totalCount", lockedCount + regCount + okCount); setAttr("page", page); List<Role> roles = roleService.findAll(); setAttr("roles", roles); render("user/list.html"); }
public void doDelGroupRolePermission(long roleId, String groupId) { List<Long> permIds = new ArrayList<Long>(); List<Permission> permissionList = permissionService.findListByNode(groupId.replace("...", "")); for (Permission permission : permissionList) { roleService.delPermission(roleId, permission.getId()); permIds.add(permission.getId()); } renderJson(Ret.ok().set("permissionIds", permIds)); } }
@Override public boolean hasPermission(long userId, long permissionId) { User user = userService.findById(userId); if (user == null || !user.isStatusOk()) { return false; } if (roleService.isSupperAdmin(userId)) { return true; } List<Permission> permissions = findPermissionListByUserId(userId); if (permissions == null || permissions.isEmpty()) { return false; } for (Permission permission : permissions) { if (permission.getId().equals(permissionId)) { return true; } } return false; }
public void index() { Long userId = getParaToLong("userId"); if (userId == null) { renderJson(Ret.fail().set("message", "userId不能为空")); return; } // 如果当前用户不是超级管理员 // 需要对传入的ID进行验证,只能自己给自己发送邮件 if (roleService.isSupperAdmin(getLoginedUser().getId()) == false) { if (getLoginedUser().getId().equals(userId) == false) { renderJson(Ret.fail().set("message", "没有权限操作")); return; } } User user = userService.findById(userId); if (user == null) { renderJson(Ret.fail().set("message", "用户不存在或已经被删除")); return; } UserEmailSender.sendEmailForUserEmailActivate(user); renderJson(Ret.ok().set("message", "激活邮件已经发送成功")); }