Przeglądaj źródła

feat: trigger user after save

MetaPunkGames 9 miesięcy temu
rodzic
commit
d4092225a8
1 zmienionych plików z 29 dodań i 2 usunięć
  1. 29 2
      server/cloud/authing/trigger-user-save.js

+ 29 - 2
server/cloud/authing/trigger-user-save.js

@@ -73,7 +73,7 @@ function appendUserACL(user){
  * 用户删除前,删除用户从Authing
  */
  export function defineUserBeforeDelete(){
-    Parse.Cloud.beforeDelete("_User", async (request) => {
+    Parse.Cloud.afterDelete("_User", async (request) => {
         let user = request.object;
         // console.log(user.toJSON());
         // console.log(user?.get("password"))
@@ -90,7 +90,34 @@ function appendUserACL(user){
                         });
                 }
             }catch(deleteErr){}
-        });
+
+        // 直接给予删除权限
+        // if(request?.master){
+        //     return await object.destroy({useMasterKey:true})
+        // }
+        // let requestUser = request.user;
+        // if(!requestUser?.id){
+        //     throw new Parse.Error(206,"Insufficient auth.")
+        // }
+        // let query = new Parse.Query("_Role");
+        // query.equalTo("users",requestUser)
+        // let roles = await query.find({useMasterKey:true});
+
+        // let acl = request.object.getACL();
+        // if(!acl){
+        //     throw new Parse.Error(206,"Object has no ACL.")
+        // }
+        // if(acl.getWriteAccess(requestUser)){
+        //     return await request.object.destroy({useMasterKey:true})
+        // }else{
+
+        //     let hasPermission = roles.some(role=>acl.getRoleWriteAccess(role.getName()))
+        //     if(hasPermission) {
+        //         return await request.object.destroy({useMasterKey:true})
+        //     }
+        //     throw new Parse.Error(206,"Insufficient auth.")
+        // }
+    });
 }
 /**
  * 用户保存后同步数据至Authing