Browse Source

fix: user acl init

MetaPunkGames 7 months ago
parent
commit
b337e6785c
1 changed files with 23 additions and 0 deletions
  1. 23 0
      server/cloud/authing/trigger-user-save.js

+ 23 - 0
server/cloud/authing/trigger-user-save.js

@@ -13,6 +13,7 @@ const managementClient  = new ManagementClient({
  */
 export function defineUserBeforeSave(){
     Parse.Cloud.beforeSave("_User", async (request) => {
+        request.object = appendUserACL(request.object)
         let user = request.object;
         // 仅首次注册/创建用户/修改密码有password属性,同步Authing账号
         let password = user?.get("password");
@@ -46,6 +47,28 @@ export function defineUserBeforeSave(){
         }
     });
 }
+function appendUserACL(user){
+    let acl = user?.getACL();
+    if(!acl) acl = new Parse.ACL();
+
+    // 添加superadmin用户的可读可写权限
+    acl.setWriteAccess("superadmin", true);
+    acl.setReadAccess("superadmin", true);
+
+    // 添加admin用户的可读可写权限
+    acl.setWriteAccess("admin", true);
+    acl.setReadAccess("admin", true);
+
+    // 添加manager用户的可读可写权限
+    acl.setWriteAccess("manager", true);
+    acl.setReadAccess("manager", true);
+    
+    // 添加公共可读权限
+    acl.setPublicReadAccess(true);
+
+    user.setACL(acl);
+    return user
+}
 /**
  * 用户删除前,删除用户从Authing
  */