Search in sources :

Example 36 with UserInterfaceSystemErrorException

use of org.mx.error.UserInterfaceSystemErrorException in project main by JohnPeng739.

the class UserManageResource method getUser.

@Path("users/{id}")
@GET
@AuthenticateAround(returnValueClass = DataVO.class)
public DataVO<UserVO> getUser(@PathParam("id") String id) {
    try {
        User user = accessor.getById(id, User.class);
        UserVO userVO = UserVO.transform(user);
        return new DataVO<>(userVO);
    } catch (UserInterfaceException ex) {
        return new DataVO<>(ex);
    } catch (Exception ex) {
        if (logger.isErrorEnabled()) {
            logger.error("Get user fail.", ex);
        }
        return new DataVO<>(new UserInterfaceSystemErrorException(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_OTHER_FAIL));
    }
}
Also used : User(org.mx.comps.rbac.dal.entity.User) UserVO(org.mx.comps.rbac.rest.vo.UserVO) DataVO(org.mx.service.rest.vo.DataVO) PaginationDataVO(org.mx.service.rest.vo.PaginationDataVO) UserInterfaceException(org.mx.error.UserInterfaceException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) UserInterfaceException(org.mx.error.UserInterfaceException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) AuthenticateAround(org.mx.comps.jwt.AuthenticateAround)

Example 37 with UserInterfaceSystemErrorException

use of org.mx.error.UserInterfaceSystemErrorException in project main by JohnPeng739.

the class TestAccredit method testAccredit.

@Test
public void testAccredit() {
    GeneralDictAccessor service = context.getBean("generalDictAccessor", GeneralDictAccessor.class);
    assertNotNull(service);
    AccreditManageService accreditService = context.getBean(AccreditManageService.class);
    assertNotNull(service);
    UserManageService userManageService = context.getBean(UserManageService.class);
    assertNotNull(userManageService);
    AccountManageService accountManageService = context.getBean(AccountManageService.class);
    assertNotNull(accountManageService);
    RoleManageService roleManageService = context.getBean(RoleManageService.class);
    assertNotNull(roleManageService);
    try {
        TestUser.testInsertUser(service, userManageService);
        TestUser.testEditUser(service, userManageService);
        assertEquals(3, service.count(User.class));
        TestAccount.testInsertAccount(service, accountManageService);
        TestAccount.testEditAccount(service, accountManageService);
        TestRole.testInsertRole(service, roleManageService);
        TestRole.testEditRole(service, roleManageService);
        assertEquals(3, service.count(Account.class));
        assertEquals(3, service.count(Role.class));
        assertEquals(0, service.count(Accredit.class));
        Account account1 = service.getById(TestAccount.account1Id, Account.class);
        assertNotNull(account1);
        Account account2 = service.getById(TestAccount.account2Id, Account.class);
        assertNotNull(account2);
        Role role1 = service.getById(TestRole.role1Id, Role.class);
        assertNotNull(role1);
        Role role2 = service.getById(TestRole.role2Id, Role.class);
        assertNotNull(role2);
        Role role3 = service.getById(TestRole.role3Id, Role.class);
        assertNotNull(role3);
        long startTime = new Date().getTime();
        AccreditManageService.AccreditInfo accreditInfo;
        // 测试没有设置源
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf("", TestAccount.account2Id, Arrays.asList(TestRole.role1Id, TestRole.role2Id, TestRole.role3Id), startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceSystemErrorException ex) {
            assertEquals(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_ILLEGAL_PARAM.getErrorCode(), ex.getErrorCode());
        }
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, "", Arrays.asList(TestRole.role1Id, TestRole.role2Id, TestRole.role3Id), startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceSystemErrorException ex) {
            assertEquals(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_ILLEGAL_PARAM.getErrorCode(), ex.getErrorCode());
        }
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, TestAccount.account2Id, null, startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceSystemErrorException ex) {
            assertEquals(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_ILLEGAL_PARAM.getErrorCode(), ex.getErrorCode());
        }
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, TestAccount.account2Id, Arrays.asList(), startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceSystemErrorException ex) {
            assertEquals(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_ILLEGAL_PARAM.getErrorCode(), ex.getErrorCode());
        }
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf("abcde", TestAccount.account2Id, Arrays.asList(TestRole.role1Id, TestRole.role2Id, TestRole.role3Id), startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceRbacErrorException ex) {
            assertEquals(UserInterfaceRbacErrorException.RbacErrors.ACCOUNT_NOT_FOUND.getErrorCode(), ex.getErrorCode());
        }
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, "abcde", Arrays.asList(TestRole.role1Id, TestRole.role2Id, TestRole.role3Id), startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceRbacErrorException ex) {
            assertEquals(UserInterfaceRbacErrorException.RbacErrors.ACCOUNT_NOT_FOUND.getErrorCode(), ex.getErrorCode());
        }
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, TestAccount.account2Id, Arrays.asList(TestRole.role1Id, "abcdef", TestRole.role3Id), startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceRbacErrorException ex) {
            assertEquals(UserInterfaceRbacErrorException.RbacErrors.ROLE_NOT_FOUND.getErrorCode(), ex.getErrorCode());
        }
        // 测试正常授权
        long endTime = new Date().getTime() + 500;
        accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, TestAccount.account2Id, Arrays.asList(TestRole.role1Id, TestRole.role2Id, TestRole.role3Id), startTime, endTime, "desc");
        Accredit accredit = accreditService.accredit(accreditInfo);
        assertEquals(1, service.count(Accredit.class));
        assertNotNull(accredit);
        assertEquals(account1, accredit.getSrc());
        assertEquals(account2, accredit.getTar());
        assertEquals(new HashSet<>(Arrays.asList(role1, role2, role3)), accredit.getRoles());
        assertEquals(startTime, accredit.getStartTime().getTime());
        assertEquals(endTime, accredit.getEndTime().getTime());
        assertTrue(accredit.isValid());
        assertEquals("desc", accredit.getDesc());
        accredit = service.getById(accredit.getId(), Accredit.class);
        assertNotNull(accredit);
        assertEquals(account1, accredit.getSrc());
        assertEquals(account2, accredit.getTar());
        assertEquals(new HashSet<>(Arrays.asList(role1, role2, role3)), accredit.getRoles());
        assertEquals(startTime, accredit.getStartTime().getTime());
        assertEquals(endTime, accredit.getEndTime().getTime());
        assertTrue(accredit.isValid());
        assertEquals("desc", accredit.getDesc());
        // 测试重复授权
        try {
            accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, TestAccount.account2Id, Arrays.asList(TestRole.role1Id, TestRole.role3Id), startTime, -1, "desc");
            accreditService.accredit(accreditInfo);
            fail("Here need a exception");
        } catch (UserInterfaceRbacErrorException ex) {
            assertEquals(UserInterfaceRbacErrorException.RbacErrors.ACCREDIT_SAME_FOUND.getErrorCode(), ex.getErrorCode());
        }
        // 测试自动时间到达后关闭
        Thread.sleep(600);
        accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, TestAccount.account2Id, Arrays.asList(TestRole.role1Id, TestRole.role3Id), startTime, -1, "desc");
        accredit = accreditService.accredit(accreditInfo);
        assertEquals(2, service.count(Accredit.class));
        assertEquals(2, service.count(Accredit.class, false));
        accredit = service.getById(accredit.getId(), Accredit.class);
        assertNotNull(accredit);
        assertEquals(account1, accredit.getSrc());
        assertEquals(account2, accredit.getTar());
        assertEquals(new HashSet<>(Arrays.asList(role1, role3)), accredit.getRoles());
        assertEquals(startTime, accredit.getStartTime().getTime());
        assertNull(accredit.getEndTime());
        assertTrue(accredit.isValid());
        assertEquals("desc", accredit.getDesc());
        // 测试关闭
        accreditService.closeAccredit(accredit.getId());
        assertEquals(1, service.count(Accredit.class));
        assertEquals(2, service.count(Accredit.class, false));
        // 再次授权
        accreditInfo = AccreditManageService.AccreditInfo.valueOf(TestAccount.account1Id, TestAccount.account2Id, Arrays.asList(TestRole.role1Id, TestRole.role3Id), startTime, -1, "desc");
        accredit = accreditService.accredit(accreditInfo);
        assertEquals(2, service.count(Accredit.class));
        assertEquals(3, service.count(Accredit.class, false));
        assertNotNull(accredit);
        accredit = service.getById(accredit.getId(), Accredit.class);
        assertNotNull(accredit);
        assertEquals(account1, accredit.getSrc());
        assertEquals(account2, accredit.getTar());
        assertEquals(new HashSet<>(Arrays.asList(role1, role3)), accredit.getRoles());
        assertEquals(startTime, accredit.getStartTime().getTime());
        assertNull(accredit.getEndTime());
        assertTrue(accredit.isValid());
        assertEquals("desc", accredit.getDesc());
    } catch (Exception ex) {
        ex.printStackTrace();
        fail(ex.getMessage());
    }
}
Also used : Account(org.mx.comps.rbac.dal.entity.Account) Accredit(org.mx.comps.rbac.dal.entity.Accredit) User(org.mx.comps.rbac.dal.entity.User) AccreditManageService(org.mx.comps.rbac.service.AccreditManageService) AccountManageService(org.mx.comps.rbac.service.AccountManageService) GeneralDictAccessor(org.mx.dal.service.GeneralDictAccessor) UserManageService(org.mx.comps.rbac.service.UserManageService) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) Date(java.util.Date) UserInterfaceRbacErrorException(org.mx.comps.rbac.error.UserInterfaceRbacErrorException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) Role(org.mx.comps.rbac.dal.entity.Role) UserInterfaceRbacErrorException(org.mx.comps.rbac.error.UserInterfaceRbacErrorException) RoleManageService(org.mx.comps.rbac.service.RoleManageService) Test(org.junit.Test)

Example 38 with UserInterfaceSystemErrorException

use of org.mx.error.UserInterfaceSystemErrorException in project main by JohnPeng739.

the class AccreditManageServiceCommonImpl method closeAccredit.

/**
 * {@inheritDoc}
 *
 * @see AccreditManageService#closeAccredit(String)
 */
@Override
public Accredit closeAccredit(String accreditId) {
    if (StringUtils.isBlank(accreditId)) {
        throw new UserInterfaceSystemErrorException(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_ILLEGAL_PARAM);
    }
    Accredit accredit = accessor.getById(accreditId, Accredit.class);
    if (accredit == null) {
        throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.ACCREDIT_NOT_FOUND);
    }
    if (accredit.isClosed()) {
        throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.ACCREDIT_HAS_CLOSED);
    }
    accredit.setValid(false);
    accredit = this.save(accredit);
    if (operateLogService != null) {
        operateLogService.writeLog(String.format("关闭授权[%s=>%s]成功。", accredit.getSrc().getName(), accredit.getTar().getName()));
    }
    return accredit;
}
Also used : Accredit(org.mx.comps.rbac.dal.entity.Accredit) UserInterfaceRbacErrorException(org.mx.comps.rbac.error.UserInterfaceRbacErrorException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException)

Example 39 with UserInterfaceSystemErrorException

use of org.mx.error.UserInterfaceSystemErrorException in project main by JohnPeng739.

the class DepartmentManageServiceCommonImpl method saveDepartment.

/**
 * {@inheritDoc}
 *
 * @see DepartmentManageService#saveDepartment(DepartInfo)
 */
@Override
public Department saveDepartment(DepartInfo departInfo) {
    if (departInfo == null) {
        throw new UserInterfaceSystemErrorException(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_ILLEGAL_PARAM);
    }
    String id = departInfo.getId();
    Department department;
    if (!StringUtils.isBlank(id)) {
        department = accessor.getById(id, Department.class);
        if (department == null) {
            throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.DEPARTMENT_NOT_FOUND);
        }
    } else {
        department = EntityFactory.createEntity(Department.class);
    }
    department.setCode(departInfo.getCode());
    department.setName(departInfo.getName());
    department.setDesc(departInfo.getDesc());
    if (StringUtils.isBlank(departInfo.getManagerId())) {
        department.setManager(null);
    } else {
        User manager = accessor.getById(departInfo.getManagerId(), User.class);
        if (manager == null) {
            throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.USER_NOT_FOUND);
        }
        department.setManager(manager);
    }
    if (department.getEmployees() != null && !department.getEmployees().isEmpty()) {
        department.getEmployees().clear();
    }
    if (departInfo.getEmployeeIds() != null) {
        for (String employeeId : departInfo.getEmployeeIds()) {
            User employee = accessor.getById(employeeId, User.class);
            if (employee == null) {
                throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.USER_NOT_FOUND);
            }
            department.getEmployees().add(employee);
        }
    }
    department.setValid(departInfo.isValid());
    department = this.save(department);
    if (operateLogService != null) {
        operateLogService.writeLog(String.format("保存部门[code=%s, name=%s]信息成功。", departInfo.getCode(), departInfo.getName()));
    }
    return department;
}
Also used : Department(org.mx.comps.rbac.dal.entity.Department) UserInterfaceRbacErrorException(org.mx.comps.rbac.error.UserInterfaceRbacErrorException) User(org.mx.comps.rbac.dal.entity.User) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException)

Example 40 with UserInterfaceSystemErrorException

use of org.mx.error.UserInterfaceSystemErrorException in project main by JohnPeng739.

the class RoleManageServiceCommonImpl method saveRole.

/**
 * {@inheritDoc}
 *
 * @see RoleManageService#saveRole(RoleInfo)
 */
@Override
public Role saveRole(RoleInfo roleInfo) {
    if (roleInfo == null) {
        throw new UserInterfaceSystemErrorException(UserInterfaceSystemErrorException.SystemErrors.SYSTEM_ILLEGAL_PARAM);
    }
    String id = roleInfo.getRoleId();
    Role role;
    if (!StringUtils.isBlank(id)) {
        role = accessor.getById(id, Role.class);
        if (role == null) {
            throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.ROLE_NOT_FOUND);
        }
    } else {
        role = EntityFactory.createEntity(Role.class);
    }
    role.setCode(roleInfo.getCode());
    role.setName(roleInfo.getName());
    role.setDesc(roleInfo.getDesc());
    if (role.getAccounts() != null && !role.getAccounts().isEmpty()) {
        role.getAccounts().clear();
    }
    if (roleInfo.getAccountIds() != null && !roleInfo.getAccountIds().isEmpty()) {
        for (String accountId : roleInfo.getAccountIds()) {
            Account account = accessor.getById(accountId, Account.class);
            if (account == null) {
                throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.ACCOUNT_NOT_FOUND);
            }
            role.getAccounts().add(account);
        }
    }
    if (role.getPrivileges() != null && !role.getPrivileges().isEmpty()) {
        role.getPrivileges().clear();
        for (String privilegeId : roleInfo.getPrivilegeIds()) {
            Privilege privilege = accessor.getById(privilegeId, Privilege.class);
            if (privilege == null) {
                throw new UserInterfaceRbacErrorException(UserInterfaceRbacErrorException.RbacErrors.PRIVILEGE_NOT_FOUND);
            }
            role.getPrivileges().add(privilege);
        }
    }
    role.setValid(roleInfo.isValid());
    role = this.save(role);
    if (operateLogService != null) {
        operateLogService.writeLog(String.format("保存角色[code=%s, name=%s]信息成功。", roleInfo.getCode(), roleInfo.getName()));
    }
    return role;
}
Also used : Role(org.mx.comps.rbac.dal.entity.Role) Account(org.mx.comps.rbac.dal.entity.Account) UserInterfaceRbacErrorException(org.mx.comps.rbac.error.UserInterfaceRbacErrorException) UserInterfaceSystemErrorException(org.mx.error.UserInterfaceSystemErrorException) Privilege(org.mx.comps.rbac.dal.entity.Privilege)

Aggregations

UserInterfaceSystemErrorException (org.mx.error.UserInterfaceSystemErrorException)40 UserInterfaceException (org.mx.error.UserInterfaceException)30 PaginationDataVO (org.mx.service.rest.vo.PaginationDataVO)30 AuthenticateAround (org.mx.comps.jwt.AuthenticateAround)27 DataVO (org.mx.service.rest.vo.DataVO)23 Account (org.mx.comps.rbac.dal.entity.Account)12 User (org.mx.comps.rbac.dal.entity.User)10 UserInterfaceRbacErrorException (org.mx.comps.rbac.error.UserInterfaceRbacErrorException)10 Role (org.mx.comps.rbac.dal.entity.Role)9 Accredit (org.mx.comps.rbac.dal.entity.Accredit)7 Pagination (org.mx.dal.Pagination)7 Department (org.mx.comps.rbac.dal.entity.Department)6 Privilege (org.mx.comps.rbac.dal.entity.Privilege)5 UserVO (org.mx.comps.rbac.rest.vo.UserVO)5 Date (java.util.Date)4 LoginHistory (org.mx.comps.rbac.dal.entity.LoginHistory)4 AccreditVO (org.mx.comps.rbac.rest.vo.AccreditVO)4 DepartmentVO (org.mx.comps.rbac.rest.vo.DepartmentVO)4 PrivilegeVO (org.mx.comps.rbac.rest.vo.PrivilegeVO)4 RoleVO (org.mx.comps.rbac.rest.vo.RoleVO)4