【问题标题】:Add a user with particular role, ex: admin or normal user添加具有特定角色的用户,例如:管理员或普通用户
【发布时间】:2016-02-25 07:58:37
【问题描述】:

我正在使用 PHP(laravel)。我想为我添加的每个用户添加角色。

我怎样才能实现它?

$postData->__set('roles',$postData->dataType('relation',array('Role','_user')));

我用过类似的东西,但它不合适。

我可以在解析中将用户保存到用户表中,但我在角色表中有两个角色,admin 和 user(普通用户)。我需要在其中添加我的用户之一。 'Relation' 是 parse.com 中的一种数据类型,使用它有一些方法可以实现它。

【问题讨论】:

  • 说说$postData->__set它是从哪里来的?
  • 感谢您的回复,set 只是在 parseUser.php 库中设置变量函数,$postData 是用于添加用户的 parseUser 对象。就像我添加指针的方式一样,用于连接两个表。所以我尝试了这种方式。
  • 这个Parse php 库是否有任何文档?
  • github.com/apotropaic/parse.com-php-library,这就是我所拥有的。
  • 我在 laravel 中也有一个小模块,github.com/linuxjuggler/laravel-and-parse-book。这是别人创建的,使用这些来引用我得到了 parse.com 背后的想法。现在用户和角色创建问题。

标签: php laravel parse-platform roles


【解决方案1】:

只需使用 CodeCloud 并使用 Parse.com PHP 库调用 Cloud Function。

JavaScript 中的此函数将用户的 ObjectId 数组添加到具有名称的角色

// Add array of user ids to role with defined name

Parse.Cloud.define('addUsersToRole', function(request, response) {
    // Params
    var userIds = request.params.users;
    var roleName = request.params.role;

    // Underscore
    var _ = require('underscore');

    // Master Key
    // skip ACL check
    Parse.Cloud.useMasterKey();

    // new role query        
    var query = new Parse.Query(Parse.Role);

    // get the role with given name
    query.equalTo('name', roleName);

    // get the first result using promises
    query.first().then(function(role){
        if(role) {

            var userRelation = role.relation('users');

            _.each(userIds, function(userId) {
                // create a new user object
                var user = new Parse.User();

                // assign the id
                user.id = userId;

                // add it to the role user relation
                userRelation.add(user);

                // a simple user counter
                role.increment('userCount');
            });

            // save the role      
            role.save().then(function(){
                response.success();
            });


        } else {
            response.error('No Role found with Name ' + roleName);
        }
    });

});

然后使用 PHP Parse Library 调用函数

<?php
    // https://github.com/apotropaic/parse.com-php-library/blob/master/parseCloud.php

    // Adding the possibility to run parse cloud code functions
    $cloud = new parseCloud("addUsersToRole");

    // Setting the params

    $cloud->__set('users',array('oviajjs3', 'CskkO33d', 'Casi33Jn'));

    $cloud->__set('role','admin');

    // Running the cloud function
    $result = $cloud->run();
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 2014-05-16
    • 2018-04-29
    • 2023-03-06
    • 2012-10-09
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多