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

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

  • 相关阅读:
    查看Android打包时签名文件keystore的MD5值
    Vue3+Vite+ElementPlus管理系统常见问题
    【python】python制作 连连看 游戏脚本(一)
    SoC第一个工程hello_world
    Python 并发编程实战,多线程、多进程加速程序运行
    leetcode题107二叉树的层序遍历-日记篇
    一篇图解Linux内存碎片整理
    防止 SQL 注入的 PHP PDO 准备语句教程
    【计算机视觉】数字图像处理基础知识题
    Android绘图学习(一)
  • 原文地址:https://blog.csdn.net/ymb76/article/details/133653417