如何使用云代码和Shashido更改单击按钮时的解析角色数组?

阿米尔·哈尼夫(Amir Hanif)

如果单击该函数,则需要将数组的值从“用户”更改为“管理员”,并且必须用云代码对其进行编码。

但是有一个问题,数组没有改变

以下代码有效,但只有nameRoleQuerry的部分不起作用,而这是我需要更改的部分。

promoteToAdmin: function promoteToAdmin(request, response) {
    if (!request.params.companyUser) {
        response.error('Request did not have an authenticated user attached with it');
    } else {
        var companyUser;
        var companyUserQuery = new Parse.Query('CompanyUser');
        companyUserQuery.include('user');
        companyUserQuery.include('company');
        companyUserQuery.get(request.params.companyUser, {
            useMasterKey: true
        }).then((giveRolename) => {
                        var nameRoleQuery = new Parse.Query(Parse.Role);
                        request.nameRoleQuery.set('user', ['Admin']);
                        return nameRoleQuery.save(null, {
                            useMasterKey: true
                        });
                    }).then((companyUserObject) => {
            companyUser = companyUserObject;
            var userRoleQuery = new Parse.Query(Parse.Role);
            userRoleQuery.equalTo('name', 'Company-User-' + companyUser.get('company').id);
            return userRoleQuery.first({
                useMasterKey: true
            });
        }).then((userRole) => {
            var usersInUserRole = userRole.relation('users');
            usersInUserRole.remove(companyUser.get('user'));
            return userRole.save(null, {
                useMasterKey: true
            });
        }).then((userRoleSaveResult) => {
            var adminRoleQuery = new Parse.Query(Parse.Role);
            adminRoleQuery.equalTo('name', 'Company-Admin-' + companyUser.get('company').id);
            return adminRoleQuery.first({
                useMasterKey: true
            });
        }).then((adminRole) => {
            var usersInAdminRole = adminRole.relation('users');
            usersInAdminRole.add(companyUser.get('user'));
            return adminRole.save(null,{
                useMasterKey: true
            });
                    }).then((saveResult) => {
                        console.log('after');
            response.success('fissa is aan');
        }, (error) => {
            console.log(error);
        });
                    console.log();
    }

}

在此处输入图片说明

角色数组需要更改。

嫉妒

仍然不确定您要做什么,但这就是我想您想要实现的目标。

CompanyUser有一个名为'user'的类型的指针Parse.User您想Parse.User在运行此查询时根据您的图像来更新它以下应该工作:

        //AS ABOVE
             .then((giveRolename) => {
                  var user = giveRoleName.get("user");
                  user.remove('role','user');
                  user.add('role','admin');
                  return user.save(null, {useMasterKey:true});
           }).then((companyUserObject) => {
//companyUserObject is Parse.User object. If CompanyUser object is needed, store in variable beforehand. 

我已经提出了我建议的以下内容,以对您当前的代码进行改进。它的顺序性较差,并且在过程中发生错误时提供较大的后备。它没有箭头功能,因此您必须进行相应的更改。

function promoteToAdmin(request, response) {

    var params = request.params;
    var companyUserId = params["companyUser"];

    var companyUser;

    return Parse.Promise.as().then(
        function()
        {
            if(!companyUser)
            {
                return Parse.Promise.error("Request did not have an user attached with it.");
            }
            var CompanyUser = Parse.Object.extend("CompanyUser");
            var companyUserQuery = new Parse.Query(CompanyUser);
            companyUserQuery.include("user");
            companyUserQuery.include("company");
            return companyUserQuery.get(companyUserId,{useMasterKey:true});

        }
    ).then(
        function(fetchedCompanyUser)
        {
            companyUser = fetchedCompanyUser;
            var company = companyUser.get("company");

            var userRoleQuery = new Parse.Query(Parse.Role);
            userRoleQuery.equalTo('name', "Company-User-" + company.id )

            var adminRoleQuery = new Parse.Query(Parse.Role);
            adminRoleQuery.equalTo('name', "Company-Admin-" + company.id);


            return Parse.Promise.when(
                userRoleQuery.first({useMasterKey:true}),
                adminRoleQuery.first({useMasterKey:true})
            )

        }
    ).then(
        function(userRole,adminRole)
        {
            if(!userRole || !adminRole)
            {
                return Parse.Promise.error("No role found")
            }

            var user = companyUser.get("user");

            user.remove("role","user");
            user.add("role","admin");

            userRole.getUsers().remove(user);
            adminRole.getUsers().add(user);


            return Parse.Promise.when(
                user.save(null,{useMasterKey:true}),
                userRole.save(null,{useMasterKey:true}),
                adminRole.save(null,{useMasterKey:true})
            )

        }
    ).then(
        function(user,userRole,adminRole)
        {
            response.success("success");
        },
        function(error)
        {
            response.error(error);
        }
    )

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击时如何更改文本和按钮图像(或按钮)

来自分类Dev

当文本更改为其他内容时,如何使用Selenium和Python单击按钮?

来自分类Dev

使用 JavaFX 和 Gluon,如何在单击按钮时从 loginPage 更改为 MainMenu?

来自分类Dev

使用reactjs和Material UI单击按钮时更改内容

来自分类Dev

单击按钮时如何更改按钮颜色

来自分类Dev

使用引导程序单击时如何更改按钮的颜色?

来自分类Dev

如何在单击按钮时使用模板更改div的内容?

来自分类Dev

如何使用jquery更改单击时输入按钮的文本?

来自分类Dev

使用jquery单击按钮时如何更改文本颜色?

来自分类Dev

添加用户以解析云代码中的角色

来自分类Dev

如何修复代码以淡化按钮并在单击时更改按钮蓝色?

来自分类Dev

单击时更改按钮文本和功能?

来自分类Dev

解析网页内容时如何单击按钮

来自分类Dev

单击按钮时如何创建html代码?

来自分类Dev

单击时如何更改按钮中的文字?

来自分类Dev

每次单击按钮时如何更改背景

来自分类Dev

每次单击按钮时如何更改内容?

来自分类Dev

单击单选按钮时如何更改容器

来自分类Dev

单击时如何更改按钮的字体?

来自分类Dev

单击按钮时如何更改背景颜色

来自分类Dev

单击时如何更改按钮中的文字?

来自分类Dev

Reactjs:单击时如何更改按钮样式

来自分类Dev

单击按钮时如何更改“颜色”名称?

来自分类Dev

单击时如何更改按钮颜色?

来自分类Dev

如何在解析时检查云代码生成的错误

来自分类Dev

如何在解析时检查云代码生成的错误

来自分类Dev

在解析服务器和Heroku中使用云代码

来自分类Dev

如何制作一系列按钮,这些按钮可在使用Tkinter单击时更改文本

来自分类Dev

想要通过单击按钮时使用字符串数组来更改背景颜色

Related 相关文章

  1. 1

    单击时如何更改文本和按钮图像(或按钮)

  2. 2

    当文本更改为其他内容时,如何使用Selenium和Python单击按钮?

  3. 3

    使用 JavaFX 和 Gluon,如何在单击按钮时从 loginPage 更改为 MainMenu?

  4. 4

    使用reactjs和Material UI单击按钮时更改内容

  5. 5

    单击按钮时如何更改按钮颜色

  6. 6

    使用引导程序单击时如何更改按钮的颜色?

  7. 7

    如何在单击按钮时使用模板更改div的内容?

  8. 8

    如何使用jquery更改单击时输入按钮的文本?

  9. 9

    使用jquery单击按钮时如何更改文本颜色?

  10. 10

    添加用户以解析云代码中的角色

  11. 11

    如何修复代码以淡化按钮并在单击时更改按钮蓝色?

  12. 12

    单击时更改按钮文本和功能?

  13. 13

    解析网页内容时如何单击按钮

  14. 14

    单击按钮时如何创建html代码?

  15. 15

    单击时如何更改按钮中的文字?

  16. 16

    每次单击按钮时如何更改背景

  17. 17

    每次单击按钮时如何更改内容?

  18. 18

    单击单选按钮时如何更改容器

  19. 19

    单击时如何更改按钮的字体?

  20. 20

    单击按钮时如何更改背景颜色

  21. 21

    单击时如何更改按钮中的文字?

  22. 22

    Reactjs:单击时如何更改按钮样式

  23. 23

    单击按钮时如何更改“颜色”名称?

  24. 24

    单击时如何更改按钮颜色?

  25. 25

    如何在解析时检查云代码生成的错误

  26. 26

    如何在解析时检查云代码生成的错误

  27. 27

    在解析服务器和Heroku中使用云代码

  28. 28

    如何制作一系列按钮,这些按钮可在使用Tkinter单击时更改文本

  29. 29

    想要通过单击按钮时使用字符串数组来更改背景颜色

热门标签

归档