예제 #1
0
 /**
  * ロール削除. <br>
  *
  * @param roleId ロールID
  * @return
  */
 @Auth(right = Right.DELETE_SYS_ROLE)
 public void deleteRole(Long roleId) {
   // 引数のロールIDと紐づくvhutUserRoleMapをセレクトする。
   Role role =
       jdbcManager
           .from(Role.class)
           .leftOuterJoin(Names.role().vhutUserRoleMapList())
           .id(roleId)
           .getSingleResult();
   if (role == null) {
     throw new InputRuntimeException("roleId", String.format("Role(id=%d) was not found", roleId));
   }
   if (role.sysLock) {
     throw new InputRuntimeException(
         "remoteRole", String.format("Role(id=%d) is managed by system", role.id));
   }
   if (role.vhutUserRoleMapList.size() > 0) {
     for (VhutUserRoleMap vhutUserRoleMap : role.vhutUserRoleMapList) {
       vhutUserRoleMap.roleId = serviceConfig.getGuestRoleId();
     }
     jdbcManager
         .updateBatch(role.vhutUserRoleMapList)
         .includes(vhutUserRoleMap().roleId())
         .execute();
   }
   if (role.isDefault) {
     setDefaultToGuestRole();
   }
   // 引数のロールIDをRoleテーブルから削除する。
   jdbcManager.delete(role).execute();
 }
예제 #2
0
 /** ゲストロールにデフォルトマークを設定します. */
 private void setDefaultToGuestRole() {
   Role guestRole =
       jdbcManager.from(Role.class).id(serviceConfig.getGuestRoleId()).getSingleResult();
   guestRole.isDefault = true;
   jdbcManager.update(guestRole).execute();
 }