コード例 #1
0
ファイル: UserAuthService.java プロジェクト: hugoDD/jeebase
  /**
   * 根据角色获取 权限字符串 如sys:admin
   *
   * @param user
   * @return
   */
  public Set<String> findStringPermissions(User user) {
    Set<String> permissions = Sets.newHashSet();

    Set<Role> roles = ((UserAuthService) AopContext.currentProxy()).findRoles(user);
    for (Role role : roles) {
      for (RoleResourcePermission rrp : role.getResourcePermissions()) {
        Resource resource = resourceService.findOne(rrp.getResourceId());

        String actualResourceIdentity = resourceService.findActualResourceIdentity(resource);

        // 不可用 即没查到 或者标识字符串不存在
        if (resource == null
            || StringUtils.isEmpty(actualResourceIdentity)
            || Boolean.FALSE.equals(resource.getShow())) {
          continue;
        }

        for (Long permissionId : rrp.getPermissionIds()) {
          Permission permission = permissionService.findOne(permissionId);

          // 不可用
          if (permission == null || Boolean.FALSE.equals(permission.getShow())) {
            continue;
          }
          permissions.add(actualResourceIdentity + ":" + permission.getPermission());
        }
      }
    }

    return permissions;
  }
コード例 #2
0
ファイル: UserAuthService.java プロジェクト: hugoDD/jeebase
 public Set<String> findStringRoles(User user) {
   Set<Role> roles = ((UserAuthService) AopContext.currentProxy()).findRoles(user);
   return Sets.newHashSet(
       Collections2.transform(
           roles,
           new Function<Role, String>() {
             @Override
             public String apply(Role input) {
               return input.getRole();
             }
           }));
 }