@Override public User findByUsername(String username) { UserCriteria userCriteria = new UserCriteria(); UserCriteria.Criteria criteria = userCriteria.createCriteria(); criteria.andUsernameEqualTo(username); List<User> users = userMapper.selectByExample(userCriteria); if (null != users && users.size() > 0) { return users.get(0); } return null; }
/* * (non-Javadoc) * * @see * com.jcin.cms.service.system.IUserServiceShiro#findPermissions(java.lang * .String) */ @Override public Set<String> findPermissions(String username) { // ----------- 此处应该用sql去实现的,现在先用程序实现。 UserCriteria userCriteria = new UserCriteria(); UserCriteria.Criteria criteria = userCriteria.createCriteria(); criteria.andUsernameEqualTo(username); List<User> users = userMapper.selectByExample(userCriteria); List<UserGroup> userGroups = new ArrayList<UserGroup>(); // 查询用户组 for (User user : users) { UserGroupCriteria userGroupCriteria = new UserGroupCriteria(); UserGroupCriteria.Criteria cri = userGroupCriteria.createCriteria(); cri.andIdEqualTo(user.getUserGroupId()); userGroups.addAll(userGroupMapper.selectByExample(userGroupCriteria)); } List<UserGroupRole> userGroupRoles = new ArrayList<UserGroupRole>(); // 查询中间表 for (UserGroup userGroup : userGroups) { UserGroupRoleCriteria userGroupRoleCriteria = new UserGroupRoleCriteria(); UserGroupRoleCriteria.Criteria cri = userGroupRoleCriteria.createCriteria(); cri.andUserGroupIdEqualTo(userGroup.getId()); userGroupRoles.addAll(userGroupRoleMapper.selectByExample(userGroupRoleCriteria)); } List<Role> roles = new ArrayList<Role>(); // 查询角色表 for (UserGroupRole userGroupRole : userGroupRoles) { RoleCriteria roleCriteria = new RoleCriteria(); RoleCriteria.Criteria rolecri = roleCriteria.createCriteria(); rolecri.andIdEqualTo(userGroupRole.getRoleId()); roles.addAll(roleMapper.selectByExample(roleCriteria)); } List<RoleAuthorization> roleAuthorizations = new ArrayList<RoleAuthorization>(); for (Role role : roles) { RoleAuthorizationCriteria authorizationCriteria = new RoleAuthorizationCriteria(); RoleAuthorizationCriteria.Criteria roleAuthcri = authorizationCriteria.createCriteria(); roleAuthcri.andRoleIdEqualTo(role.getId()); roleAuthorizations.addAll(roleAuthorizationMapper.selectByExample(authorizationCriteria)); } List<Authorization> authorizations = new ArrayList<Authorization>(); for (RoleAuthorization roleAuthorization : roleAuthorizations) { AuthorizationCriteria authorizationCriteria = new AuthorizationCriteria(); AuthorizationCriteria.Criteria authcri = authorizationCriteria.createCriteria(); authcri.andIdEqualTo(roleAuthorization.getAuthorizationId()); authorizations.addAll(authorizationMapper.selectByExample(authorizationCriteria)); } Set<String> set = new HashSet<String>(); for (Authorization authorization : authorizations) { set.add(authorization.getName()); } return set; }