Search in sources :

Example 1 with Role

use of com.webank.wedatasphere.qualitis.entity.Role in project Qualitis by WeBankFinTech.

the class ProjectServiceImpl method addProjectReal.

@Override
public Project addProjectReal(Long userId, String projectName, String cnName, String projectDescription) throws UnExpectedRequestException {
    User user = userDao.findById(userId);
    // Automatically grant the highest authority to the system administrator.
    Role role = roleDao.findByRoleName(ADMIN);
    List<User> admins = userRoleDao.findByRole(role).stream().map(UserRole::getUser).collect(Collectors.toList());
    // Check existence of project by project name.
    Project projectInDb = projectDao.findByNameAndCreateUser(projectName, user.getUserName());
    if (projectInDb != null) {
        throw new UnExpectedRequestException(String.format("{&PROJECT}:%s {&ALREADY_EXIST}", projectName));
    }
    // Save project.
    Project newProject = new Project(projectName, cnName, projectDescription, user.getUserName(), user.getChineseName(), user.getDepartment() != null ? user.getDepartment().getName() : "", ExecutionManagerImpl.PRINT_TIME_FORMAT.format(new Date()));
    // Create project user.
    if (admins.contains(user)) {
        createProjectUser(newProject, user);
    } else {
        createProjectUser(newProject, user);
        for (User currentAdmin : admins) {
            createProjectUser(newProject, currentAdmin);
        }
    }
    return newProject;
}
Also used : Role(com.webank.wedatasphere.qualitis.entity.Role) UserRole(com.webank.wedatasphere.qualitis.entity.UserRole) Project(com.webank.wedatasphere.qualitis.project.entity.Project) UnExpectedRequestException(com.webank.wedatasphere.qualitis.exception.UnExpectedRequestException) User(com.webank.wedatasphere.qualitis.entity.User) ProjectUser(com.webank.wedatasphere.qualitis.project.entity.ProjectUser)

Example 2 with Role

use of com.webank.wedatasphere.qualitis.entity.Role in project Qualitis by WeBankFinTech.

the class RolePermissionDaoTest method saveRole.

private Role saveRole() {
    // 保存是否成功
    Role entity = new Role();
    entity.setName("junitRole");
    Role saveEntity = roleDao.saveRole(entity);
    assertTrue(saveEntity.getId() != 0);
    return saveEntity;
}
Also used : Role(com.webank.wedatasphere.qualitis.entity.Role)

Example 3 with Role

use of com.webank.wedatasphere.qualitis.entity.Role in project Qualitis by WeBankFinTech.

the class UserRoleDaoTest method test.

@Test
@Transactional
public void test() {
    User saveUser = saveUser();
    Role saveRole = saveRole();
    // 保存是否成功
    UserRole entity = new UserRole();
    entity.setId(UuidGenerator.generate());
    entity.setUser(saveUser);
    entity.setRole(saveRole);
    UserRole saveEntity = dao.saveUserRole(entity);
    assertNotNull(saveEntity.getId());
    // 总数量大于0
    long size = dao.countAll();
    assertTrue(size > 0);
    // 分页查询有结果
    List<UserRole> datas = dao.findAllUserRole(0, 5);
    assertTrue(datas.size() > 0);
    // 保存到数据库的对象是否和保存的值一致
    UserRole findByIdEntity = dao.findByUuid(saveEntity.getId());
    assertNotNull(findByIdEntity);
    assertEquals(findByIdEntity.getUser().getUserName(), saveEntity.getUser().getUserName());
    assertEquals(findByIdEntity.getRole().getName(), saveEntity.getRole().getName());
    UserRole findByUserAndRoleEntity = dao.findByUserAndRole(saveUser, saveRole);
    assertNotNull(findByUserAndRoleEntity);
    assertEquals(findByUserAndRoleEntity.getUser().getUserName(), saveEntity.getUser().getUserName());
    assertEquals(findByUserAndRoleEntity.getRole().getName(), saveEntity.getRole().getName());
    // 根据username查询的数据库对象是否和保存的值一致
    List<UserRole> findByRoleEntity = dao.findByRole(saveRole);
    assertTrue(findByRoleEntity.size() > 0);
    assertEquals(findByRoleEntity.get(0).getUser().getUserName(), saveEntity.getUser().getUserName());
    // 根据username查询的数据库对象是否和保存的值一致
    List<UserRole> findByUserEntity = dao.findByUser(saveUser);
    assertTrue(findByUserEntity.size() > 0);
    assertEquals(findByUserEntity.get(0).getRole().getName(), saveEntity.getRole().getName());
    // 删除后,是否还能找到对象
    dao.deleteUserRole(saveEntity);
    UserRole deleteEntity = dao.findByUuid(saveEntity.getId());
    assertNull(deleteEntity);
}
Also used : Role(com.webank.wedatasphere.qualitis.entity.Role) UserRole(com.webank.wedatasphere.qualitis.entity.UserRole) User(com.webank.wedatasphere.qualitis.entity.User) UserRole(com.webank.wedatasphere.qualitis.entity.UserRole) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 4 with Role

use of com.webank.wedatasphere.qualitis.entity.Role in project Qualitis by WeBankFinTech.

the class RolePermissionServiceImpl method modifyRolePermission.

@Override
@Transactional(rollbackFor = { RuntimeException.class, UnExpectedRequestException.class })
public GeneralResponse<?> modifyRolePermission(ModifyRolePermissionRequest request) throws UnExpectedRequestException {
    // Check Arguments
    checkRequest(request);
    // Check existence of role permission
    String uuid = request.getUuid();
    RolePermission rolePermissionInDb = rolePermissionDao.findByUuid(uuid);
    if (rolePermissionInDb == null) {
        throw new UnExpectedRequestException("role permission id {&DOES_NOT_EXIST}, request: " + request);
    }
    LOGGER.info("Succeed to find role_permission, uuid: {}, role_id: {}, permission_id: {}, current_user: {}", uuid, rolePermissionInDb.getRole().getId(), rolePermissionInDb.getPermission().getId(), HttpUtils.getUserName(httpServletRequest));
    long roleId = request.getRoleId();
    long permissionId = request.getPermissionId();
    Role roleInDb = roleDao.findById(roleId);
    if (roleInDb == null) {
        throw new UnExpectedRequestException("role id {&DOES_NOT_EXIST}, request: " + request);
    }
    Permission permissionInDb = permissionDao.findById(permissionId);
    if (permissionInDb == null) {
        throw new UnExpectedRequestException("permission id {&DOES_NOT_EXIST}, request: " + request);
    }
    RolePermission roleIdAndPermissionIdInDb = rolePermissionDao.findByRoleAndPermission(roleInDb, permissionInDb);
    if (roleIdAndPermissionIdInDb != null) {
        throw new UnExpectedRequestException("role and permission {&ALREADY_EXIST}, request: " + request);
    }
    // Save role permission
    rolePermissionInDb.setRole(roleInDb);
    rolePermissionInDb.setPermission(permissionInDb);
    RolePermission savedRolePermission = rolePermissionDao.saveRolePermission(rolePermissionInDb);
    LOGGER.info("Succeed to modify role_permission, uuid: {}, role_id: {}, permission_id: {}, current_user: {}", uuid, savedRolePermission.getRole().getId(), savedRolePermission.getPermission().getId(), HttpUtils.getUserName(httpServletRequest));
    return new GeneralResponse<>("200", "{&MODIFY_ROLE_PERMISSION_SUCCESSFULLY}", null);
}
Also used : Role(com.webank.wedatasphere.qualitis.entity.Role) GeneralResponse(com.webank.wedatasphere.qualitis.response.GeneralResponse) UnExpectedRequestException(com.webank.wedatasphere.qualitis.exception.UnExpectedRequestException) Permission(com.webank.wedatasphere.qualitis.entity.Permission) RolePermission(com.webank.wedatasphere.qualitis.entity.RolePermission) RolePermission(com.webank.wedatasphere.qualitis.entity.RolePermission) Transactional(org.springframework.transaction.annotation.Transactional)

Example 5 with Role

use of com.webank.wedatasphere.qualitis.entity.Role in project Qualitis by WeBankFinTech.

the class UserServiceImpl method autoAddUser.

@Override
@Transactional(rollbackFor = { Exception.class })
public void autoAddUser(String username) throws RoleNotFoundException {
    User newUser = new User();
    String password = username;
    String passwordEncoded = Sha256Encoder.encode(password);
    newUser.setUserName(username);
    newUser.setPassword(passwordEncoded);
    User savedUser = userDao.saveUser(newUser);
    Role role = roleDao.findByRoleName("PROJECTOR");
    if (role == null) {
        throw new RoleNotFoundException();
    }
    UserRole userRole = new UserRole();
    userRole.setId(UuidGenerator.generate());
    userRole.setRole(role);
    userRole.setUser(savedUser);
    userRoleDao.saveUserRole(userRole);
    LOGGER.info("Succeed to save user_role. uuid: {}, user_id: {}, role_id: {}", userRole.getId(), savedUser.getId(), role.getId());
}
Also used : Role(com.webank.wedatasphere.qualitis.entity.Role) UserRole(com.webank.wedatasphere.qualitis.entity.UserRole) User(com.webank.wedatasphere.qualitis.entity.User) UserRole(com.webank.wedatasphere.qualitis.entity.UserRole) RoleNotFoundException(javax.management.relation.RoleNotFoundException) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

Role (com.webank.wedatasphere.qualitis.entity.Role)13 Transactional (org.springframework.transaction.annotation.Transactional)9 UserRole (com.webank.wedatasphere.qualitis.entity.UserRole)7 User (com.webank.wedatasphere.qualitis.entity.User)6 UnExpectedRequestException (com.webank.wedatasphere.qualitis.exception.UnExpectedRequestException)6 GeneralResponse (com.webank.wedatasphere.qualitis.response.GeneralResponse)5 Permission (com.webank.wedatasphere.qualitis.entity.Permission)4 RolePermission (com.webank.wedatasphere.qualitis.entity.RolePermission)3 Test (org.junit.Test)3 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)3 Project (com.webank.wedatasphere.qualitis.project.entity.Project)2 ProjectUser (com.webank.wedatasphere.qualitis.project.entity.ProjectUser)2 RoleDao (com.webank.wedatasphere.qualitis.dao.RoleDao)1 UserDao (com.webank.wedatasphere.qualitis.dao.UserDao)1 UserRoleDao (com.webank.wedatasphere.qualitis.dao.UserRoleDao)1 PermissionDeniedRequestException (com.webank.wedatasphere.qualitis.exception.PermissionDeniedRequestException)1 EventTypeEnum (com.webank.wedatasphere.qualitis.project.constant.EventTypeEnum)1 ProjectTypeEnum (com.webank.wedatasphere.qualitis.project.constant.ProjectTypeEnum)1 ProjectUserPermissionEnum (com.webank.wedatasphere.qualitis.project.constant.ProjectUserPermissionEnum)1 ProjectDao (com.webank.wedatasphere.qualitis.project.dao.ProjectDao)1