| | |
| | | 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"; // 사용자 등급을 사용하고 있는 사용자가 있습니다. |
| | | |
| | | } |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.domain.User; |
| | | import kr.wisestone.owl.web.condition.UserCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | |
| | | |
| | | List<Map<String, Object>> findEvent(); |
| | | |
| | | Long findByLevelId(Long levelId); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | |
| | | |
| | | void updateLastLogin(); |
| | | |
| | | boolean useUserLevel(Long id); |
| | | |
| | | //ModelAndView downloadExcelEvent(Model model); |
| | | } |
| | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | @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()); |
| | |
| | | |
| | | 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) { |
| | |
| | | |
| | | for (Map<String, Object> result : results) { |
| | | UserLevelVo userLevelVo = ConvertUtil.convertMapToClass(result, UserLevelVo.class); |
| | | userLevelVo.toPermissionValues(); |
| | | userLevelVos.add(userLevelVo); |
| | | } |
| | | |
| | |
| | | } 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 값 추가 |
| | |
| | | this.userRepository.saveAndFlush(user); |
| | | } |
| | | |
| | | @Override |
| | | public boolean useUserLevel(Long levelId) { |
| | | return this.userMapper.findByLevelId(levelId) > 0; |
| | | } |
| | | |
| | | // 마지막으로 선택한 프로젝트 정보를 저장한다. |
| | | @Override |
| | | @Transactional |
| | |
| | | package kr.wisestone.owl.vo; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import kr.wisestone.owl.constant.MngPermission; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | |
| | | @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); |
| | |
| | | } |
| | | |
| | | // 사용자등급 수정 |
| | | // @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) |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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() { |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | |
| | | 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> |
| | |
| | | selectedPageRowCount : String(10) |
| | | }; |
| | | |
| | | $scope.vm.tableConfigs = []; |
| | | $scope.vm.tableConfigs2 = []; |
| | | $scope.vm.responseData = { |
| | | data : [] |
| | | }; |
| | |
| | | |
| | | // 부서 관리 테이블 설정 |
| | | 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") |
| | |
| | | }; |
| | | |
| | | //테이블 리스트 데이터 컨트롤러 요청 |
| | | 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() { |
| | |
| | | '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 |
| | | } |
| | | }; |
| | | |
| | |
| | | } |
| | | |
| | | // 폼 전송 |
| | | 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(); |
| | |
| | | $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); // "참여 상태 변경 실패" |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | ]); |
| | |
| | | $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 = { |
| | |
| | | } |
| | | |
| | | // 부서 목록 |
| | | 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(); |
| | | } |
| | | ]); |
| | | } |
| | |
| | | ], |
| | | 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) { |
| | | |
| | | |
| | |
| | | $scope.fn.makeTableConfigs = makeTableConfigs; // 사용자 등급 관리 목록 테이블 설정 |
| | | $scope.fn.initSearch = initSearch; // 검색 조건 초기화 |
| | | $scope.fn.levelAdd = levelAdd; // 등급 추가 |
| | | $scope.fn.removes = removes; // 사용자 등급 삭제 |
| | | |
| | | /* $scope.vm 상속 중 */ |
| | | $scope.vm.search = { |
| | |
| | | $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 = ""; |
| | |
| | | .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") |
| | |
| | | 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); |
| | |
| | | </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> |
| | | |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | | |
| | |
| | | <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> |
| | |
| | | <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> |