| | |
| | | import kr.wisestone.owl.util.*; |
| | | import kr.wisestone.owl.vo.*; |
| | | import kr.wisestone.owl.web.condition.UserCondition; |
| | | import kr.wisestone.owl.web.form.DepartmentManagementForm; |
| | | import kr.wisestone.owl.web.form.UserForm; |
| | | import kr.wisestone.owl.web.form.UserLevelForm; |
| | | import kr.wisestone.owl.web.view.ExcelView; |
| | | import org.apache.commons.validator.routines.EmailValidator; |
| | | import org.slf4j.Logger; |
| | |
| | | import org.springframework.security.core.session.SessionRegistry; |
| | | import org.springframework.security.core.userdetails.UserDetails; |
| | | import org.springframework.security.crypto.password.PasswordEncoder; |
| | | import org.springframework.stereotype.Repository; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.ui.Model; |
| | |
| | | |
| | | @Autowired |
| | | private UserRepository userRepository; |
| | | |
| | | @Autowired |
| | | private UserLevelService userLevelService; |
| | | |
| | | @Autowired |
| | | private DepartmentManagementService departmentManagementService; |
| | | |
| | | @Autowired |
| | | private SystemRoleService systemRoleService; |
| | |
| | | user.setAccount(CommonUtil.encryptAES128(userForm.getAccount())); |
| | | user.setPassword(this.passwordEncoder.encode(user.getPassword())); |
| | | |
| | | this.userRepository.saveAndFlush(user); |
| | | //this.userLevelRepository.saveAndFlush(user); |
| | | //userLevelRepository.saveAndFlush(user); |
| | | |
| | | // 프로필 파일이 유효한지 체크한다. |
| | | this.verifyProfile(profile); |
| | |
| | | |
| | | this.userInviteService.includePrimaryWorkspace(user, primaryWorkspace); |
| | | |
| | | |
| | | |
| | | // edit by zenith for permission at 20200803 |
| | | user.setPermission(MngPermission.USER_PERMISSION_MNG_NONE); |
| | | /*user.setPermission(MngPermission.USER_PERMISSION_MNG_NONE);*/ |
| | | |
| | | } 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); |
| | | user.setUserLevel(userLevel); |
| | | |
| | | // DepartmentManagement에 임시로 Name, Description 값 추가 |
| | | DepartmentManagementForm departmentManagementForm = new DepartmentManagementForm(); |
| | | |
| | | departmentManagementForm.setDepartmentName("개발팀"); |
| | | departmentManagementForm.setDepartmentDescription("웹사이트 및 앱 서비스 개발"); |
| | | DepartmentManagement departmentManagement = this.departmentManagementService.addDepartment(departmentManagementForm); |
| | | user.setDepartmentId(departmentManagement); |
| | | |
| | | if(primaryWorkspace == null || primaryWorkspace.getName() != userForm.getWorkspaceName()) { |
| | | // 업무 공간를 생성한다. 가입한 사용자는 업무 공간의 주인이다. |
| | |
| | | user.setLastWorkspaceId(workspace.getId()); |
| | | |
| | | // edit by zenith for permission at 20200803 |
| | | user.setPermission(MngPermission.makeAllPermission()); |
| | | //user.setPermission(MngPermission.makeAllPermission()); |
| | | } else { |
| | | this.userInviteService.includePrimaryWorkspace(user, primaryWorkspace); |
| | | user.setLastWorkspaceId(primaryWorkspace.getId()); |
| | | |
| | | user.setPermission(MngPermission.makeSubAllPermission()); |
| | | /*user.setPermission(MngPermission.makeSubAllPermission());*/ |
| | | } |
| | | } |
| | | this.userRepository.saveAndFlush(user); |
| | | |
| | | // 이메일 알림 예정 시간이 공백이면 디폴트 이메일 알림 예정 시간으로 설정한다. |
| | | user.setReservationNotifyTime(User.DEFAULT_RESERVATION_NOTIFY_TIME); |
| | | this.userRepository.saveAndFlush(user); |
| | | |
| | | // 초대받은 메일이 있는 사용자가 가입했으면 초대했을 때 선택한 프로젝트에 참여 시킨다. |
| | | this.userInviteService.checkInviteUser(user); |
| | |
| | | this.userRepository.saveAndFlush(user); |
| | | } |
| | | |
| | | // 마지막으로 선택한 프로젝트 정보를 저장한다. |
| | | // 마지막으로 선택한 프로젝트 정보를 저장한다. |
| | | @Override |
| | | @Transactional |
| | | public void updateLastProject(Map<String, Object> resJsonData, UserForm userForm) { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | // 업무 공간에서 제외되거나 업무 공간 삭제시 참여 사용자들의 마지막 접근 업무 공간 정보로 세션 업데이트하기 위해 사용 |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | |
| | | @Transactional(readOnly = true) |
| | | public User getUserSession(Map<String, Object> resJsonData, HttpServletRequest httpServletRequest) { |
| | | User user = this.getUser(this.webAppUtil.getLoginId()); |
| | | UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class, "password"); |
| | | UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class, "password", "permission"); |
| | | // user에서 Permission 값을 가져와서 userVo 에 setPermission 함 |
| | | userVo.setPermission(user.getPermission()); |
| | | userVo.setAccount(CommonUtil.decryptAES128(userVo.getAccount())); |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, userVo); |
| | | // 사용자 세션 정보를 분석해서 로그에 남긴다. |