• JHipster数据权限使用


    一、在JDL的application配置中添加feature:dataScope

    1. application {
    2.   config {
    3.     applicationType monolith
    4.     title "瀚海工作平台"
    5.     footer ""
    6.     baseName LimsMonolith
    7.     packageName com.eyun
    8.     appVersion "0.0.1"
    9.     serverPort 8891
    10.     authenticationType jwt
    11.     cacheProvider no
    12.     databaseType sql
    13.     devDatabaseType mysql
    14.     prodDatabaseType mysql
    15.     searchEngine false
    16.     serviceDiscoveryType false
    17.     buildTool maven
    18.     enableSwaggerCodegen true
    19.     embeddableLaunchScript false
    20.     clientPackageManager npm
    21.     clientFramework angularX
    22.     clientTheme none
    23.     reactive false
    24.     jhiPrefix jhi
    25.     dtoSuffix DTO
    26.     otherModules []
    27.     websocket spring-websocket
    28.     enableTranslation true
    29.     languages [zh-cn,en]
    30.     nativeLanguage zh-cn
    31.     devDatabasePassword "zgp30RKxVmurmnGe"
    32.     devDatabaseUrl "www.eyun.online:3306"
    33.     prodDatabasePassword "YVrcuPQihPLk7Mpv"
    34.     prodDatabaseUrl "192.168.8.100:3306"
    35.     testFrameworks []
    36.     licenseManager "license4j"
    37.     features [superadmin,crypto,importPreview,dataScope,tenancy,oplog]
    38.     jwtSecretKey "TGltc01vbm9saXRoMjAyMuWunumqjOS/oeaBr+euoeeQhuezu+e7n2NvbS5leXVuODg5MUxpbXNNb25vbGl0aDIwMjLlrp7pqozkv6Hmga/nrqHnkIbns7vnu59jb20u"
    39.   }
    40.   entities *
    41. }

    二、自定义Entity:User,并添加@role("USER")

    1. /**
    2. * 用户
    3. */
    4. @paginate(pagination)
    5. @system
    6. @ChangelogDate(20220808080808)
    7. @role("USER")
    8. entity User {
    9. @system
    10. email String
    11. @system
    12. lastName String
    13. @id
    14. @system
    15. login String maxlength(50)
    16. }
    17. relationship ManyToMany {
    18. User{@translate(zh-cn="部门")department(label,*)} to Department{@translate(zh-cn="职工")user(login,firstName)},
    19. }

    三、在需要添加数据权限的Entity前添加注释@dataScope

    1. /**
    2. * 职工
    3. */
    4. @paginate(pagination)
    5. @translate(zh-cn="职工")
    6. @ChangelogDate(20220809080808)
    7. @dataScope
    8. entity Employee {
    9. @translate(zh-cn="姓名")
    10. name String required minlength(2),
    11. @translate(zh-cn="工号")
    12. @id empno String unique,
    13. @translate(zh-cn="手机号")
    14. @crypto(SM2="???*****???")
    15. mobile String unique minlength(2),
    16. @translate(zh-cn="身份证号码")
    17. @crypto(SM2="????*****????")
    18. idcard String required unique minlength(2),
    19. @translate(zh-cn="微信openid")
    20. @crypto(SM2="????*****????")
    21. openid String unique,
    22. @translate(zh-cn="微信昵称")
    23. nickname String,
    24. @translate(zh-cn="头像地址")
    25. avatarUrl String,
    26. }

    四、在管理界面新建用户

    系统在创建用户的时候会创建对应的用户唯一的权限,如用户test对应权限ROLE_USER_test。

    五、在entity对应的编辑界面选择数据权限

    数据x

    五、在entity对应的列表界面查看数据

    用户只能看到在步骤四中设置对应的权限的用户能看到其数据。

  • 相关阅读:
    数组清空(bzero与memset)
    导数求函数最大值和最小值习题
    2023年09月个人工作生活总结
    80端口和443端口是什么?有什么区别?
    十三、Django之添加用户(原始方法实现)
    Redis高可用三主三从集群部署
    服务治理:常用限流算法总结
    【Linux】在Ubuntu下安装Zotero
    翻译软件哪个准确度高【免费】
    Rockchip RK3399 - USB触摸屏接口驱动
  • 原文地址:https://blog.csdn.net/ymb76/article/details/133653417