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));
}
}
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());
}
}
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;
}
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;
}
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;
}
Aggregations