From 76806da455b31bdcff001d866afde72a284e00ff Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 수, 03 11월 2021 08:57:43 +0900 Subject: [PATCH] - 사용자 등급관리 생성,수정,삭제까지 진행 --- src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java | 45 ++-- src/main/resources/mybatis/query-template/user-template.xml | 5 src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java | 55 +++++ src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 2 src/main/java/kr/wisestone/owl/service/UserLevelService.java | 11 + src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js | 88 ++++++++ src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js | 32 ++- src/main/webapp/views/workspace/workspaceDepartmentConfig.html | 2 src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js | 49 ++-- src/main/java/kr/wisestone/owl/vo/UserLevelVo.java | 40 +++ src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js | 42 ++-- src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java | 13 src/main/webapp/views/workspace/workspaceLevelAdd.html | 34 +- src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java | 121 ++++++++++++ src/main/java/kr/wisestone/owl/mapper/UserMapper.java | 2 src/main/java/kr/wisestone/owl/service/UserService.java | 2 src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js | 34 +- 17 files changed, 451 insertions(+), 126 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index d01a82c..6fa3dd9 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -204,6 +204,6 @@ public static final String PAGE_NEGATIVE_OR_NULL = "PAGE_NEGATIVE_OR_NULL"; // �슂泥��븳 �럹�씠吏� �젙蹂닿� �옒紐삳릺�뿀�뒿�땲�떎. public static final String PAGE_SIZE_NEGATIVE_OR_NULL = "PAGE_SIZE_NEGATIVE_OR_NULL"; // �슂泥��븳 �럹�씠吏� �겕湲곌� �옒紐삳릺�뿀�뒿�땲�떎. - + public static final String USER_LEVEL_ALREADY = "USER_LEVEL_ALREADY"; // �궗�슜�옄 �벑湲됱쓣 �궗�슜�븯怨� �엳�뒗 �궗�슜�옄媛� �엳�뒿�땲�떎. } diff --git a/src/main/java/kr/wisestone/owl/mapper/UserMapper.java b/src/main/java/kr/wisestone/owl/mapper/UserMapper.java index b1522b8..6ed585e 100644 --- a/src/main/java/kr/wisestone/owl/mapper/UserMapper.java +++ b/src/main/java/kr/wisestone/owl/mapper/UserMapper.java @@ -1,5 +1,6 @@ package kr.wisestone.owl.mapper; +import kr.wisestone.owl.domain.User; import kr.wisestone.owl.web.condition.UserCondition; import org.springframework.stereotype.Repository; @@ -29,4 +30,5 @@ List<Map<String, Object>> findEvent(); + Long findByLevelId(Long levelId); } diff --git a/src/main/java/kr/wisestone/owl/service/UserLevelService.java b/src/main/java/kr/wisestone/owl/service/UserLevelService.java index 7b61e26..6d2f137 100644 --- a/src/main/java/kr/wisestone/owl/service/UserLevelService.java +++ b/src/main/java/kr/wisestone/owl/service/UserLevelService.java @@ -4,9 +4,11 @@ import kr.wisestone.owl.vo.UserLevelVo; import kr.wisestone.owl.web.condition.UserCondition; import kr.wisestone.owl.web.condition.UserLevelCondition; +import kr.wisestone.owl.web.form.UserForm; import kr.wisestone.owl.web.form.UserLevelForm; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; @@ -14,5 +16,12 @@ public interface UserLevelService extends AbstractService<UserLevel, Long, JpaRepository<UserLevel, Long>> { UserLevel addUserLevel(UserLevelForm userLevelForm); - List<UserLevelVo> findUser(Map<String, Object> resJsonData, UserLevelCondition make, Pageable pageable); + UserLevel addSuperUserLevel(); + + List<UserLevelVo> findUser(Map<String, Object> resJsonData, + UserLevelCondition make, Pageable pageable); + + void modifyUserLevel(UserLevelForm userLevelForm); + + void removeUserLevel(UserLevelForm userLevelForm); } diff --git a/src/main/java/kr/wisestone/owl/service/UserService.java b/src/main/java/kr/wisestone/owl/service/UserService.java index 70af5fa..c36d4f1 100644 --- a/src/main/java/kr/wisestone/owl/service/UserService.java +++ b/src/main/java/kr/wisestone/owl/service/UserService.java @@ -80,5 +80,7 @@ void updateLastLogin(); + boolean useUserLevel(Long id); + //ModelAndView downloadExcelEvent(Model model); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java index d5c5fdf..8e35538 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java @@ -2,11 +2,16 @@ import com.google.common.collect.Lists; import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.constant.MngPermission; +import kr.wisestone.owl.constant.MsgConstants; +import kr.wisestone.owl.domain.User; import kr.wisestone.owl.domain.UserLevel; +import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.UserLevelMapper; import kr.wisestone.owl.mapper.UserMapper; import kr.wisestone.owl.repository.UserLevelRepository; import kr.wisestone.owl.service.UserLevelService; +import kr.wisestone.owl.service.UserService; import kr.wisestone.owl.util.CommonUtil; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.vo.ResPage; @@ -14,11 +19,13 @@ import kr.wisestone.owl.vo.UserVo; import kr.wisestone.owl.web.condition.UserCondition; import kr.wisestone.owl.web.condition.UserLevelCondition; +import kr.wisestone.owl.web.form.ManageUserForm; import kr.wisestone.owl.web.form.UserLevelForm; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.util.List; import java.util.Map; @@ -32,21 +39,38 @@ @Autowired private UserLevelMapper userLevelMapper; + @Autowired + private UserService userService; + @Override protected JpaRepository<UserLevel, Long> getRepository() { return this.userLevelRepository; } + // �궗�슜�옄 媛��엯 �썑 UserLevel 媛� ���옣 @Override public UserLevel addUserLevel(UserLevelForm userLevelForm) { + userLevelForm.makePermission(); UserLevel userLevel = ConvertUtil.copyProperties(userLevelForm, UserLevel.class); userLevelRepository.saveAndFlush(userLevel); return userLevel; } + // 理쒓퀬愿�由ъ옄 �벑湲� 異붽� @Override - public List<UserLevelVo> findUser(Map<String, Object> resJsonData, UserLevelCondition condition, - Pageable pageable) { + public UserLevel addSuperUserLevel() { + UserLevel userLevel = new UserLevel(); + userLevel.setLevelName("理쒓퀬愿�由ъ옄"); + userLevel.setPermission(MngPermission.makeAllPermission()); + + userLevel = userLevelRepository.saveAndFlush(userLevel); + return userLevel; + } + + // �궗�슜�옄 �벑湲� 紐⑸줉�쓣 媛��졇�삩�떎. + @Override + public List<UserLevelVo> findUser(Map<String, Object> resJsonData, + UserLevelCondition condition, Pageable pageable) { condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); condition.setPageSize(pageable.getPageSize()); @@ -56,6 +80,32 @@ return this.convertUserLevelVoToMap(results, totalUsersCount, pageable, resJsonData); } + // �궗�슜�옄 �벑湲� �젙蹂대�� �닔�젙�븳�떎. + @Override + public void modifyUserLevel(UserLevelForm userLevelForm) { + userLevelForm.makePermission(); + UserLevel userLevel = ConvertUtil.copyProperties(userLevelForm, UserLevel.class); + userLevelRepository.saveAndFlush(userLevel); + } + + @Override + public void removeUserLevel(UserLevelForm userLevelForm) { + if (userLevelForm.getRemoveIds().size() < 1) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.PROJECT_REMOVE_NOT_SELECT)); + } + + for (Long id : userLevelForm.getRemoveIds()) { + if (!this.userService.useUserLevel(id)) { + this.userLevelRepository.deleteById(id); + } else { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_ALREADY)); + } + } + + this.userLevelRepository.flush(); + } // 寃��깋 寃곌낵瑜� UserLevelVo 濡� 蹂��솚�븳�떎. private List<UserLevelVo> convertUserLevelVoToMap(List<Map<String, Object>> results, Long totalUsersCount, Pageable pageable, Map<String, Object> resJsonData) { @@ -63,6 +113,7 @@ for (Map<String, Object> result : results) { UserLevelVo userLevelVo = ConvertUtil.convertMapToClass(result, UserLevelVo.class); + userLevelVo.toPermissionValues(); userLevelVos.add(userLevelVo); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java index 07b26f1..760b213 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java @@ -235,13 +235,7 @@ } else if(validAdmin == 1) { // �씪�씠�꽱�뒪 �엯�젰 愿�由ъ옄 Workspace primaryWorkspace = this.workspaceService.getPrimaryWorkspace(); - // UserLevel�뿉 Permission 媛� �꽔�뼱以� - UserLevelForm userLevelForm = new UserLevelForm(); - // Constants �뿉�꽌 ADMIN 媛� 異붽� - userLevelForm.setLevelName(Constants.ADMIN_MANAGER); - // Permission 媛� 異붽� - userLevelForm.setPermission(MngPermission.makeAllPermission()); - UserLevel userLevel = this.userLevelService.addUserLevel(userLevelForm); + UserLevel userLevel = this.userLevelService.addSuperUserLevel(); user.setUserLevel(userLevel); // DepartmentManagement�뿉 �엫�떆濡� Name, Description 媛� 異붽� @@ -1033,6 +1027,11 @@ this.userRepository.saveAndFlush(user); } + @Override + public boolean useUserLevel(Long levelId) { + return this.userMapper.findByLevelId(levelId) > 0; + } + // 留덉�留됱쑝濡� �꽑�깮�븳 �봽濡쒖젥�듃 �젙蹂대�� ���옣�븳�떎. @Override @Transactional diff --git a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java b/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java index 2156ab2..9d8325b 100644 --- a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java +++ b/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java @@ -1,6 +1,7 @@ package kr.wisestone.owl.vo; import com.google.common.collect.Lists; +import kr.wisestone.owl.constant.MngPermission; import java.util.List; @@ -13,12 +14,24 @@ private String levelName; private Integer permission; + public Boolean permWorkSpace; + public Boolean permProjectSetting; + public Boolean permIssueSetting; + public Boolean permUser; + public Boolean permNotice; + public Boolean permFAQ; + public Boolean permQnA; + public Boolean permEvent; + public Boolean permGuide; + + private Boolean modifyPermissionCheck = Boolean.TRUE; + public UserLevelVo() { } - public UserLevelVo(Long id, String levelname, Integer permission) { + public UserLevelVo(Long id, String levelName, Integer permission) { this.id = id; - this.levelName = levelname; + this.levelName = levelName; this.permission = permission; } @@ -42,7 +55,26 @@ return permission; } - public void setPermission(Integer permission) { - this.permission = permission; + public void setPermission(Integer permission) { this.permission = permission; } + + public Boolean getModifyPermissionCheck() { + return modifyPermissionCheck; } + + public void setModifyPermissionCheck(Boolean modifyPermissionCheck) { + this.modifyPermissionCheck = modifyPermissionCheck; + } + + public void toPermissionValues() { + this.permWorkSpace = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE); + this.permProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT); + this.permIssueSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING); + this.permUser = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_USER); + this.permNotice = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_NOTICE); + this.permFAQ = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_FAQ); + this.permQnA = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_QNA); + this.permEvent = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_EVENT); + this.permGuide = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_GUIDE); + } + } diff --git a/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java b/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java index 9f1c0c2..802cf45 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java @@ -35,9 +35,9 @@ @RequestMapping(value = "/userLevel/add", method = RequestMethod.POST) public @ResponseBody - Map<String, Object> addUserLevel(MultipartHttpServletRequest request) { + Map<String, Object> addUserLevel(@RequestBody Map<String, Map<String, Object>> params) { Map<String, Object> resJsonData = new HashMap<>(); - Map<String, Object> content = ConvertUtil.convertJsonToMap(request.getParameter(Constants.REQ_KEY_CONTENT)); + Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); this.userLevelService.addUserLevel(UserLevelForm.make(content)); return this.setSuccessMessage(resJsonData); @@ -57,28 +57,29 @@ } // �궗�슜�옄�벑湲� �닔�젙 -// @RequestMapping(value = "/userLevel/modify", produces = MediaType.APPLICATION_JSON_VALUE) -// public -// @ResponseBody -// Map<String, Object> modify(MultipartHttpServletRequest request) { -// Map<String, Object> resJsonData = new HashMap<>(); -// -// this.userService.modifyUser(UserForm.make(ConvertUtil.convertJsonToMap(request.getParameter(Constants.REQ_KEY_CONTENT))), request.getFile("file")); -// -// return this.setSuccessMessage(resJsonData); -// } + @RequestMapping(value = "/userLevel/modify", produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> modify(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); + this.userLevelService.modifyUserLevel(UserLevelForm.make(content)); + + return this.setSuccessMessage(resJsonData); + } // �궗�슜�옄�벑湲� �궘�젣 -// @RequestMapping(value = "/userLevel/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) -// public -// @ResponseBody -// Map<String, Object> withDraw() { -// Map<String, Object> resJsonData = new HashMap<>(); -// -// this.userService.withDrawUser(); -// -// return this.setSuccessMessage(resJsonData); -// } + @RequestMapping(value = "/userLevel/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); + + this.userLevelService.removeUserLevel(UserLevelForm.make(content)); + + return this.setSuccessMessage(resJsonData); + } // �궗�슜�옄 �벑湲� �뿊�� �떎�슫濡쒕뱶 // @RequestMapping(value = "/userLevel/downloadExcel", method = RequestMethod.POST) diff --git a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java index 3301980..047cdc1 100644 --- a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java @@ -1,8 +1,13 @@ package kr.wisestone.owl.web.form; +import com.google.common.collect.Lists; +import kr.wisestone.owl.constant.MngPermission; import kr.wisestone.owl.domain.User; +import kr.wisestone.owl.domain.UserLevel; import kr.wisestone.owl.util.ConvertUtil; +import kr.wisestone.owl.util.MapUtil; +import java.util.List; import java.util.Map; /** @@ -13,10 +18,37 @@ private String levelName; private Integer permission; + private List<Long> removeIds = Lists.newArrayList(); + public Boolean permWorkspaceSetting; + public Boolean permProjectSetting; + public Boolean permIssueSetting; + public Boolean permUser; + public Boolean permNotice; + public Boolean permFAQ; + public Boolean permQnA; + public Boolean permGuide; + public Boolean permEvent; + + + public UserLevelForm(){} public static UserLevelForm make(Map<String, Object> params) { - return ConvertUtil.convertMapToClass(params, UserLevelForm.class); + UserLevelForm form = ConvertUtil.convertMapToClass(params, UserLevelForm.class); + + if (MapUtil.getLongs(params, "removeIds") != null) { + form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); + } + + return form; + + } + public Boolean getPermWorkspaceSetting() { + return permWorkspaceSetting; + } + + public void setPermWorkspaceSetting(Boolean permWorkspaceSetting) { + this.permWorkspaceSetting = permWorkspaceSetting; } public Long getId() { @@ -42,4 +74,91 @@ public void setPermission(Integer permission) { this.permission = permission; } + + + public Boolean getPermProjectSetting() { + return permProjectSetting; + } + + public void setPermProjectSetting(Boolean permProjectSetting) { + this.permProjectSetting = permProjectSetting; + } + + public Boolean getPermIssueSetting() { + return permIssueSetting; + } + + public void setPermIssueSetting(Boolean permIssueSetting) { + this.permIssueSetting = permIssueSetting; + } + + public Boolean getPermUser() { + return permUser; + } + + public void setPermUser(Boolean permUser) { + this.permUser = permUser; + } + + public Boolean getPermNotice() { + return permNotice; + } + + public void setPermNotice(Boolean permNotice) { + this.permNotice = permNotice; + } + + public Boolean getPermFAQ() { + return permFAQ; + } + + public void setPermFAQ(Boolean permFAQ) { + this.permFAQ = permFAQ; + } + + public Boolean getPermQnA() { + return permQnA; + } + + public void setPermQnA(Boolean permQnA) { + this.permQnA = permQnA; + } + + public Boolean getPermEvent() { + return permEvent; + } + + public void setPermEvent(Boolean permEvent) { + this.permEvent = permEvent; + } + + public Boolean getPermGuide() { + return permGuide; + } + + public void setPermGuide(Boolean permGuide) { + this.permGuide = permGuide; + } + + public List<Long> getRemoveIds() { + return removeIds; + } + + public void setRemoveIds(List<Long> removeIds) { + this.removeIds = removeIds; + } + + public void makePermission() { + this.permission = MngPermission.USER_PERMISSION_MNG_NONE; + + this.permission |= MngPermission.makePermission(getPermWorkspaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE); + this.permission |= MngPermission.makePermission(getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT); + this.permission |= MngPermission.makePermission(getPermIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING); + this.permission |= MngPermission.makePermission(getPermUser(), MngPermission.USER_PERMISSION_MNG_USER); + this.permission |= MngPermission.makePermission(getPermNotice(), MngPermission.USER_PERMISSION_MNG_NOTICE); + this.permission |= MngPermission.makePermission(getPermFAQ(), MngPermission.USER_PERMISSION_MNG_FAQ); + this.permission |= MngPermission.makePermission(getPermQnA(), MngPermission.USER_PERMISSION_MNG_QNA); + this.permission |= MngPermission.makePermission(getPermGuide(), MngPermission.USER_PERMISSION_MNG_GUIDE); + } + } diff --git a/src/main/resources/mybatis/query-template/user-template.xml b/src/main/resources/mybatis/query-template/user-template.xml index 161cd1b..a1433b4 100644 --- a/src/main/resources/mybatis/query-template/user-template.xml +++ b/src/main/resources/mybatis/query-template/user-template.xml @@ -170,5 +170,10 @@ GROUP BY u.id ORDER BY issueCount desc, loginCount DESC; </select> + <select id="findByLevelId" resultType="java.util.HashMap" parameterType="java.lang.Long"> + SELECT count(u.id) + FROM user u + WHERE u.level_id = #{id} + </select> </mapper> \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js index d16a436..0cb8031 100644 --- a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js +++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js @@ -29,7 +29,7 @@ selectedPageRowCount : String(10) }; - $scope.vm.tableConfigs = []; + $scope.vm.tableConfigs2 = []; $scope.vm.responseData = { data : [] }; @@ -51,23 +51,23 @@ // 遺��꽌 愿�由� �뀒�씠釉� �꽕�젙 function makeTableConfigs() { - $scope.vm.tableConfigs = []; + $scope.vm.tableConfigs2 = []; - $scope.vm.tableConfigs.push($tableProvider.config() + $scope.vm.tableConfigs2.push($tableProvider.config() .setDType("checkbox") .setHWidth("width-20-p") .setDAlign("text-center")); - $scope.vm.tableConfigs.push($tableProvider.config() + $scope.vm.tableConfigs2.push($tableProvider.config() .setHName("manageDepartment.departmentName") .setHWidth("width-120-p") .setDAlign("text-center") .setDName("levelName")); - $scope.vm.tableConfigs.push($tableProvider.config() + $scope.vm.tableConfigs2.push($tableProvider.config() .setHName("manageDepartment.departmentEx") .setHWidth("width-120-p") .setDAlign("text-center") .setDName("manageProject")); - $scope.vm.tableConfigs.push($tableProvider.config() + $scope.vm.tableConfigs2.push($tableProvider.config() .setHName("manageDepartment.departmentCount") .setHWidth("width-120-p") .setDAlign("text-center") @@ -95,17 +95,17 @@ }; //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥� - UserWorkspace.departmentFind($resourceProvider.getContent(conditions, - $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { - - if (result.data.message.status === "success") { - $scope.vm.page.selectedPage = currentPage + 1; - $scope.vm.responseData = result.data; - } - else { - SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" - } - }); + // UserWorkspace.departmentFind($resourceProvider.getContent(conditions, + // $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + // + // if (result.data.message.status === "success") { + // $scope.vm.page.selectedPage = currentPage + 1; + // $scope.vm.responseData = result.data; + // } + // else { + // SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + // } + // }); } // 遺��꽌 異붽� function departmentAdd() { diff --git a/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js b/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js index a1a6f6d..7cd2fb2 100644 --- a/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js +++ b/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js @@ -4,29 +4,31 @@ 'use strict'; define([ - 'app' + 'app', + 'angular' ], - function (app) { - app.controller('workspaceLevelAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'Workspace', '$filter', 'parameter', '$timeout', - function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Workspace, $filter, parameter) { + function (app, angular) { + app.controller('workspaceLevelAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', 'UserWorkspace', 'Workspace', '$filter', 'parameter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, UserWorkspace, Workspace, $filter, parameter) { $scope.fn = { cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 formCheck : formCheck, // �뤌 泥댄겕 + modifyUserPermission : modifyUserPermission // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� }; $scope.vm = { form : { levelName : "", - permWorkspaceSetting : "", - permProjectSetting : "", - permIssueSetting : "", - permUser : "", - permNotice : "", - permFAQ : "", - permQnA : "", - permGuide : "" + permWorkspaceSetting : false, + permProjectSetting : false, + permIssueSetting : false, + permUser : false, + permNotice : false, + permFAQ : false, + permQnA : false, + permGuide : false } }; @@ -40,17 +42,11 @@ } // �뤌 �쟾�넚 - function formSubmit() { + function formSubmit(condistion) { $rootScope.spinner = true; - var content = { - title : $rootScope.preventXss($scope.vm.form.levelName), - description : $rootScope.preventXss($scope.vm.form.description) - }; - - UserWorkspace.levelAdd($resourceProvider.getContent( - content, - $resourceProvider.getPageContent(0, 10))).then(function (result) { + UserWorkspace.levelAdd($resourceProvider.getContent(condistion, + $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status === "success") { $scope.fn.cancel(); @@ -72,6 +68,17 @@ $uibModalInstance.dismiss('cancel'); $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� } + + function modifyUserPermission(userPermission ) { + UserWorkspace.levelModify($resourceProvider.getContent(userPermission, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } } ]); diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js index bf562b0..3f5130c 100644 --- a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js +++ b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js @@ -19,7 +19,7 @@ $scope.fn.initSearch = initSearch; // 寃��깋 議곌굔 珥덇린�솕 $scope.fn.changePageRowCount = changePageRowCount; // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� $scope.fn.getLevels = getLevels; // �벑湲� 紐⑸줉 媛��졇�삤湲� - $scope.fn.getDepartments = getDepartments; // 遺��꽌 紐⑸줉 媛��졇�삤湲� + // $scope.fn.getDepartments = getDepartments; // 遺��꽌 紐⑸줉 媛��졇�삤湲� /* $scope.vm �긽�냽 以� */ $scope.vm.search = { @@ -192,27 +192,27 @@ } // 遺��꽌 紐⑸줉 - function getDepartments() { - var deferred = $q.defer(); + // function getDepartments() { + // var deferred = $q.defer(); + // + // UserWorkspace.departmentFind($resourceProvider.getContent({}, + // $resourceProvider.getPageContent(0, 1000))).then(function (result) { + // + // if (result.data.message.status === "success") { + // $scope.vm.search.departments = result.data.data; + // } + // else { + // SweetAlert.swal($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message, "error"); // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣 + // } + // + // deferred.resolve(result.data.data); + // }); + // + // return deferred.promise; + // } - UserWorkspace.departmentFind($resourceProvider.getContent({}, - $resourceProvider.getPageContent(0, 1000))).then(function (result) { - - if (result.data.message.status === "success") { - $scope.vm.search.departments = result.data.data; - } - else { - SweetAlert.swal($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message, "error"); // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣 - } - - deferred.resolve(result.data.data); - }); - - return deferred.promise; - } - - // $scope.fn.makeTableConfigs(); - // $scope.fn.getUserWorkspaceList(); + $scope.fn.makeTableConfigs(); + $scope.fn.getUserWorkspaceList(); } ]); } diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js index 827197b..12fae15 100644 --- a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js +++ b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js @@ -9,7 +9,7 @@ ], function (app, angular) { app.controller('workspaceUserLevelController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', - 'UserWorkspace', 'Workspace', '$filter', + 'UserWorkspace', '$filter', function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) { @@ -18,6 +18,7 @@ $scope.fn.makeTableConfigs = makeTableConfigs; // �궗�슜�옄 �벑湲� 愿�由� 紐⑸줉 �뀒�씠釉� �꽕�젙 $scope.fn.initSearch = initSearch; // 寃��깋 議곌굔 珥덇린�솕 $scope.fn.levelAdd = levelAdd; // �벑湲� 異붽� + $scope.fn.removes = removes; // �궗�슜�옄 �벑湲� �궘�젣 /* $scope.vm �긽�냽 以� */ $scope.vm.search = { @@ -45,6 +46,84 @@ $scope.fn.getUserLevelList(0); }); + // �궗�슜�옄 �벑湲� �궘�젣 + function removes() { + var removeIds = []; + var removePermission = true; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked && data.modifyPermissionCheck) { + removeIds.push(data.id); + } + + if (data.checked && !data.modifyPermissionCheck) { + removePermission = false; + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("issue.notHaveDeletePermissionExistsAnIssue"), // �궘�젣 沅뚰븳�씠 �뾾�뒗 �씠�뒋媛� 議댁옱�빀�땲�떎. + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteSelectIssue"), // �꽑�깮�븳 �씠�뒋�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + UserWorkspace.levelRemove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.listView(); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + // 寃��깋 議곌굔 珥덇린�솕 function initSearch() { //$scope.vm.search.name = ""; @@ -67,6 +146,13 @@ .setDAlign("text-center") .setDName("levelName")); $scope.vm.tableConfigs1.push($tableProvider.config() + .setHName("manageUser.manageWorkspacePerm") + .setHWidth("width-120-p") + .setDType("renderer") + .setDAlign("text-center") + .setDName("manageProject") + .setDRenderer("WORKSPACE_USE_YN")); + $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageProjectPerm") .setHWidth("width-120-p") .setDType("renderer") diff --git a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js index 2fb0d40..5c4c279 100644 --- a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js +++ b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js @@ -12,24 +12,36 @@ return response; }); }, - departmentFind : function (conditions) { - return $http.post("userWorkspace/departmentFind", conditions).then(function (response) { - $log.debug("遺��꽌 紐⑸줉 : ", response); - return response; - }); - }, levelAdd : function (conditions) { - return $http.post("userWorkspace/levelAdd", conditions).then(function (response) { + return $http.post("userLevel/add", conditions).then(function (response) { $log.debug("�궗�슜�옄 �벑湲� �깮�꽦 寃곌낵 : ", response); return response; }); }, - departmentAdd : function (conditions) { - return $http.post("userWorkspace/departmentAdd", conditions).then(function (response) { - $log.debug("遺��꽌 �깮�꽦 寃곌낵 : ", response); + levelModify : function (conditions) { + return $http.post("userLevel/modify", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �벑湲� �닔�젙 寃곌낵 : ", response); return response; }); }, + levelRemove : function (conditions) { + return $http.post("userLevel/remove", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �벑湲� �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + // departmentFind : function (conditions) { + // return $http.post("userWorkspace/departmentFind", conditions).then(function (response) { + // $log.debug("遺��꽌 紐⑸줉 : ", response); + // return response; + // }); + // }, + // departmentAdd : function (conditions) { + // return $http.post("userWorkspace/departmentAdd", conditions).then(function (response) { + // $log.debug("遺��꽌 �깮�꽦 寃곌낵 : ", response); + // return response; + // }); + // }, find : function (conditions) { return $http.post("userWorkspace/find", conditions).then(function (response) { $log.debug("�썙�겕�뒪�럹�씠�뒪�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 : ", response); diff --git a/src/main/webapp/views/workspace/workspaceDepartmentConfig.html b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html index 0433e7a..f47028f 100644 --- a/src/main/webapp/views/workspace/workspaceDepartmentConfig.html +++ b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html @@ -134,7 +134,7 @@ </div> <div class="table-responsive"> - <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" + <js-table data="vm.responseData.data" table-configs="vm.tableConfigs2" event="vm.tableEvent"></js-table> </div> diff --git a/src/main/webapp/views/workspace/workspaceLevelAdd.html b/src/main/webapp/views/workspace/workspaceLevelAdd.html index d20524a..5e083e4 100644 --- a/src/main/webapp/views/workspace/workspaceLevelAdd.html +++ b/src/main/webapp/views/workspace/workspaceLevelAdd.html @@ -33,7 +33,7 @@ <span translate="manageUser.manageWorkspacePerm">�썙�겕�뒪�럹�씠�뒪 愿�由�</span> </td> <td colspan="2"> - <label class='switch'><input type='checkbox' ng-model='vm.form.permWorkspaceSetting' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> + <label class='switch'><input type='checkbox' ng-model='vm.form.permWorkspaceSetting'><span class='slider round'></span></label> </td> </tr> <tr> @@ -41,15 +41,7 @@ <span translate="manageUser.manageProjectPerm">�봽濡쒖젥�듃 愿�由�</span> </td> <td colspan="2"> - <label class='switch'><input type='checkbox' ng-model='vm.form.permProjectSetting' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> - </td> - </tr> - <tr> - <td class="text-left bold"> - <span translate="manageUser.manageUserPerm">�궗�슜�옄 愿�由�</span> - </td> - <td> - <label class='switch'><input type='checkbox' ng-model='vm.form.permUser' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> + <label class='switch'><input type='checkbox' ng-model='vm.form.permProjectSetting'><span class='slider round'></span></label> </td> </tr> <tr> @@ -57,7 +49,15 @@ <span translate="manageUser.manageIssueSystemPerm">�씠�뒋 �떆�뒪�뀥 愿�由�</span> </td> <td> - <label class='switch'><input type='checkbox' ng-model='vm.form.permIssueSetting' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> + <label class='switch'><input type='checkbox' ng-model='vm.form.permIssueSetting' ><span class='slider round'></span></label> + </td> + </tr> + <tr> + <td class="text-left bold"> + <span translate="manageUser.manageUserPerm">�궗�슜�옄 愿�由�</span> + </td> + <td> + <label class='switch'><input type='checkbox' ng-model='vm.form.permUser'><span class='slider round'></span></label> </td> </tr> <tr> @@ -65,7 +65,7 @@ <span translate="manageUser.manageNoticePerm">怨듭��궗�빆 愿�由�</span> </td> <td> - <label class='switch'><input type='checkbox' ng-model='vm.form.permNotice' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> + <label class='switch'><input type='checkbox' ng-model='vm.form.permNotice' ><span class='slider round'></span></label> </td> </tr> <tr> @@ -73,7 +73,7 @@ <span translate="manageUser.manageFAQPerm">FAQ 愿�由�</span> </td> <td> - <label class='switch'><input type='checkbox' ng-model='vm.form.permFAQ' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> + <label class='switch'><input type='checkbox' ng-model='vm.form.permFAQ' ><span class='slider round'></span></label> </td> </tr> <tr> @@ -81,7 +81,7 @@ <span translate="manageUser.manageQnAPerm">QnA 愿�由�</span> </td> <td> - <label class='switch'><input type='checkbox' ng-model='vm.form.permQnA' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> + <label class='switch'><input type='checkbox' ng-model='vm.form.permQnA' ><span class='slider round'></span></label> </td> </tr> @@ -90,7 +90,7 @@ <span translate="manageUser.manageGuidePerm">媛��씠�뱶 愿�由�</span> </td> <td> - <label class='switch'><input type='checkbox' ng-model='vm.form.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> + <label class='switch'><input type='checkbox' ng-model='vm.form.permGuide' ><span class='slider round'></span></label> </td> </tr> </table> @@ -101,9 +101,9 @@ <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> <button type="button" class="btn btn-md btn-primary bold" js-short-cut - js-short-cut-action="(fn.formCheck(levelAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + js-short-cut-action="(fn.formCheck(levelAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit(vm.form)" ng-disabled="fn.formCheck(paymentAddForm.$invalid)" - ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + ng-click="fn.formSubmit(vm.form)"><span translate="common.save">���옣</span> </button> </div> </div> \ No newline at end of file -- Gitblit v1.8.0