javascript - 以编程方式创建 Parse.com 角色

标签 javascript parse-platform roles parse-cloud-code

我希望以编程方式创建 Parse.com Angular 色,因为根据我收集的信息,您无法在数据浏览器中创建父/子关系或引用 Angular 色的 Angular 色。我目前在 Parse 中没有任何 Angular 色。当我运行以下代码时,我在 JS 控制台中收到 400(错误请求)。

$scope.activateRoles = function(){
            console.log("activating vendor");
            Parse.Cloud.run("activateVendor ", {
                success: function (IDK) {
                    alert("The user roles were activated");
                },
                error: function (error) {
                    alert("The user roles were not activated.", error);
                }
            });
        }()

Parse.Cloud.define("createRoles", function(request, response){
    Parse.Cloud.useMasterKey();
    var admin = new Parse.ACL();
    admin.setPublicReadAccess(false);
    admin.setPublicWriteAccess(false);
    admin.getReadAccess("Uh792HOaqi");
    admin.getWriteAccess("Uh792HOaqi");
    admin.setReadAccess("Uh792HOaqi", true);
    admin.setWriteAccess("Uh792HOaqi", true);

    var adminRole = new Parse.Role("admin", admin);
    adminRole.save();

    var agentRole = new Parse.Role("agent", admin);
    agentRole.getRoles().add(adminRole);
    agentRole.save();

    var vendorRole = new Parse.Role("vendor", admin);
    vendorRole.getRoles().add(adminRole);
    vendorRole.save();
})

最佳答案

必须确保调用成功/错误。您还需要注意确保将用户添加到已保存的 Angular 色中。如果您添加的 Angular 色已保存,您也只能向 Angular 色添加 Angular 色。

以下是有效的方法:

Parse.Cloud.define("createRoles", function(request, response){
     Parse.Cloud.useMasterKey();
     var admin = new Parse.ACL();
     var adminRole = new Parse.Role("admin", admin);
     adminRole.save().then(function(adminRoleSaved){
        var promises = [];
        var agentRole = new Parse.Role("agent", admin);
        agentRole.getRoles().add(adminRoleSaved);
        promises.push(agentRole.save());

    var me = new Parse.Query(Parse.User);
    me.get(request.params.id, {
        success: function(me) {
            adminRoleSaved.getUsers().add(me);
            adminRoleSaved.save();
        },
        error: function(error){
        }
    });

    var vendorRole = new Parse.Role("business", admin);
    vendorRole.getRoles().add(adminRoleSaved);
    promises.push(vendorRole.save());

    Parse.Promise.when(promises).then(function() {
        response.success();
    }, function(error) {
        response.error(error);
    });
});
});

关于javascript - 以编程方式创建 Parse.com 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202680/

相关文章:

javascript - 如何在javascript中垂直显示数组表格

parse-platform - 解析服务器 : how to make this query efficient?

azure - 设置 Azure ACS 角色

php - cakephp 3 允许用户只编辑他们的个人资料

java - ejb有关角色和身份验证的安全性问题

javascript - 可以在 NodeJS 的所有请求中包含我的连接吗?

javascript - 如何使用 $.ajax{} 使用 ajax 更新 html

javascript - 使用 Javascript 动态创建表

javascript - 解析 iOS、云代码和后台作业

javascript - 在 uitableview 单元格中显示项目的评分