Class RoleAdminController

java.lang.Object
com.easydesk.web.controller.RoleAdminController

@Controller public class RoleAdminController extends Object
Role 목록 화면 (조회 전용) 과, Role 에 부여된 Permission 을 관리하는 화면. Role 의 등록/삭제는 대응되는 Artifact 의 Workflow 승인 절차로 진행하므로, 이 화면에서 바로 추가/삭제하는 기능(버튼과 /admin/manage-roles/add, /remove)은 두지 않는다. 기존 /admin/roles(-> admin-roles.html) 는 이미 만들어진 Role 을 User+Group 에 부여/회수하는 화면이라 이름이 겹치지 않도록 이 화면은 /admin/manage-roles 로 라우팅한다. 목록 아래에는 "Role 실험실" 을 보여준다 - Role Attribute(AttributeEnum.Role) 의 AttributeOption 에는 등록되어 있지만 EASYDESK_ROLE table 에는 아직 row 가 없는 것들이다 (PermissionAdminController 와 같은 규칙).
  • Constructor Summary

    Constructors
    Constructor
    Description
    RoleAdminController(SecurityService moduleSecurityService, org.springframework.context.MessageSource messageSource)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    list(HttpSession session, org.springframework.ui.Model model)
     
    permissions(Integer roleId, HttpSession session, org.springframework.ui.Model model)
    선택한 Role 에 부여되어 있는 Permission 목록 (전체 Permission 에 대해 grant 여부 checkbox 로 표시).
    togglePermission(Integer roleId, Integer permissionId, Boolean grant, HttpSession session, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes)
    Permission checkbox 를 클릭하는 즉시 grant/revoke 를 반영한다 (checkbox 는 상태를 저장하지 않고, checked="true" 이면 name="grant" 파라미터가 전송되고 unchecked 면 전송되지 않는 표준 HTML checkbox 동작을 그대로 이용한다).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RoleAdminController

      public RoleAdminController(@Qualifier("moduleSecurityService") SecurityService moduleSecurityService, org.springframework.context.MessageSource messageSource)
  • Method Details

    • list

      @Screen("AdminRolesManage") @GetMapping("/admin/manage-roles") public String list(HttpSession session, org.springframework.ui.Model model)
    • permissions

      @Screen("AdminRolePermissions") @GetMapping("/admin/manage-roles/{roleId}/permissions") public String permissions(@PathVariable("roleId") Integer roleId, HttpSession session, org.springframework.ui.Model model)
      선택한 Role 에 부여되어 있는 Permission 목록 (전체 Permission 에 대해 grant 여부 checkbox 로 표시).
    • togglePermission

      @Screen("AdminRolePermissions") @PostMapping("/admin/manage-roles/{roleId}/permissions/{permissionId}") public String togglePermission(@PathVariable("roleId") Integer roleId, @PathVariable("permissionId") Integer permissionId, @RequestParam(value="grant",required=false) Boolean grant, HttpSession session, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes)
      Permission checkbox 를 클릭하는 즉시 grant/revoke 를 반영한다 (checkbox 는 상태를 저장하지 않고, checked="true" 이면 name="grant" 파라미터가 전송되고 unchecked 면 전송되지 않는 표준 HTML checkbox 동작을 그대로 이용한다).