根据用户的角色显示内容

时间:2017-05-10 14:24:45

标签: javascript angularjs

我有一个菜单,其中的部分仅对某些用户可见。我在我的数据库中有角色user,role admin1和role admin2。 例如,如何仅对ROLE_ADMIN1显示类别2?

知道我的用户可以同时拥有多个角色或所有角色。如下所示,每个用户都有ROLE_USER角色,但唯一的区别是ROLE_USER只能是ROLE_USER,ROLE_ADMIN1或ROLE_ADMIN2,或者两者同时。

buildscript {
    repositories {
        jcenter()
        maven { url 'https://repo.spring.io/libs-snapshot' }
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion"
    }
}

apply plugin: 'war'
apply plugin: 'org.springframework.boot'

repositories {
    jcenter()
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
}

group = 'com.lapots.tree.model.web'

dependencies {
    compile "org.springframework.boot:spring-boot-starter-parent:$springBootVersion"
    compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
    compile "org.springframework.boot:spring-boot-starter-webflux:$springBootVersion"
    compile "org.springframework.boot:spring-boot-starter-jetty:$springBootVersion"
    compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
}

我的HTML:

localhost:8080/tree-model-app/ping

在我的控制器中:

{
         "name": "Jack",
         "fname": "Daniel",
         "roles": [
           "ROLE_USER"
         ]
       }


       {
         "name": "Laly",
         "fname": "Dom",
         "roles": [
           "ROLE_USER",
           "ROLE_ADMIN1"
         ]
       }


       {
         "name": "Admini",
         "fname": "Strator",
         "roles": [
           "ROLE_USER",
           "ROLE_ADMIN2"
         ]
       }<br><br>            {
         "name": "Admini",
         "fname": "Strator",
         "roles": [
           "ROLE_USER",
           "ROLE_ADMIN1",               
           "ROLE_ADMIN2" 
           ]
       }

谢谢大家!

1 个答案:

答案 0 :(得分:0)

首先,我认为在后端级别处理此逻辑的最佳实践

所以你发送令牌,后端人员必须检查来自

的滚动

将其标记为self并根据您拥有的权限返回数据

还要确保您的数据安全。

如果您不关心上述提及,您可以这样做,并在客户端过滤您的数据

  $scope.adminData = []; 
  $scope.data = [{data:'some user data',roll:'user'},{data:'some admin data',roll:'admin'}]
        data.filter(function(currentValue, index, arr){
        if(currentValue.roll == "admin"){
        $scope.adminData.push(currentValue);
        }
        })

如果登录用户具有管理员权限

,则在视图中重复adminData数组

在这种情况下,我更喜欢在组件中执行逻辑

为您提供更好的维护和更清晰的视野。