Ich versuche, eine "general_user" -Rolle für meine App einzurichten, so dass Admin einen Benutzer verbannen kann, indem er sie aus dieser Rolle entfernt.parse-server set ACL für Benutzer und Rolle in afterSave
Dieser Code:
Parse.Cloud.afterSave(Parse.User, function(request, response) {
var user = request.object;
if (user.existed()) { return; }
var roleQuery = new Parse.Query(CONSTANTS.ROLE_CLASSNAME);
roleQuery.equalTo("name", CONSTANTS.GENERAL_USER_ROLENAME);
roleQuery.first(CONSTANTS.USE_MASTER_KEY)
.then(function(generalUserRole) {
if(generalUserRole)
{
generalUserRole.getUsers().add(user);
return generalUserRole.save();
}
else
{
var role = new Parse.Role(CONSTANTS.GENERAL_USER_ROLENAME, new Parse.ACL());
role.getUsers().add(user);
return role.save();
}
}).then(function(generalUserRole) {
var acl = new Parse.ACL();
acl.setWriteAccess(user, true);
acl.setRoleReadAccess(generalUserRole, true);
req.object.setACL(acl);
},
function(error) {
console.log(JSON.stringify(error));
});
});
Ergebnisse in einer ACL, die public read, user(write)
(Lesen im Armaturenbrett) ist.
Ich habe versucht, das Speichern des req.Objekts nach dem Hinzufügen der ACL zu speichern.
Ich habe mit und ohne res.success()
versucht (was ich verstehe, ist nicht notwendig in afterSaves).
Vielen Dank.
So hatte ich es so versucht und es hat nicht funktioniert, wenn Sie sagten, es arbeitete ich erkannte, dass es etwas anderes sein muss. Also löschte ich alle Benutzer in meiner Parse.User-Tabelle (mit den alten ACLs) und dann hat alles gut funktioniert. Vielen Dank. – MayNotBe
Kühl. Glücklich, dass es jetzt für dich funktioniert –