• 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对应的列表界面查看数据

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

  • 相关阅读:
    磁盘分区和加载
    【Hadoop】关于Yarn的一些学习笔记(Hadoop权威指南读书笔记等)
    瑞吉外卖:通过Shell脚本自动部署项目
    Shiro 权限绕过漏洞(CVE-2020-1957)
    File基础入门
    SAGI GAMES 创始人曾嵘:瞄准休闲游戏,将“创意”转化为“商业”
    【java学习】JavaBean(28)
    linux发展历程
    【Qt按钮基类】QAbstractButton[ 所有按钮基类 ]
    ARFoundation系列讲解 - 79 AR室内导航四
  • 原文地址:https://blog.csdn.net/ymb76/article/details/133653417