5

我正在尝试注册用户,我想知道如何将角色设置为管理员。我试过了

user: {
  username: "elialber",
  email: "falecom@elialber.com.br",
  password: "123456789",
  role: ???
}

我正在使用 Angular5 而只是 api strapi

4

5 回答 5

2

第 1 步:转到 node_modules/strapi-plugin-users-permissions/controllers/Auth.js 第 2 步:转到第 457 行(在我的代码中) 第 3 步:注释 params.role=role.id; 喜欢 (//params.role = role.id;)

现在你可以像下面这样传递角色 id 1 或 2 或 3

{
    "blocked":false,
    "confirmed":true,
    "username":"aziz",
    "email":"musa@binarymarvels.com",
    "password":"musa01010",
    "role": 2
}



and now I receive a response like:
{
    "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MzQsImlhdCI6MTYwMjUzMzk0MSwiZXhwIjoxNjA1MTI1OTQxfQ.xM2tmP8PUcwABiW9lmxkjkmcmdmckMB8wlQ1YsBOQI",
    "user": {
        "id": 34,
        "username": "aziz",
        "email": "musa@binarymarvels.com",
        "provider": "local",
        "confirmed": true,
        "blocked": false,
        "role": {
            "id": 2,
            "name": "Public",
            "description": "Default role given to the unauthenticated user.",
            "type": "public"
        },
        "created_at": "2020-10-12T20:19:01.285Z",
        "updated_at": "2020-10-12T20:19:01.299Z"
    }
}
于 2020-10-12T20:29:42.810 回答
2

在 Strapi 管理员中:

角色和权限 -> 高级设置

将经过身份验证的用户的字段默认角色设置为“管理员”

于 2018-10-29T02:23:05.073 回答
1

你可以这样做

user: {  
username: "elialber",   
email: "falecom@elialber.com.br",  
password: "123456789",   
role: {   
_id: "5afac95f0eabf75b64c6ef92" // role id that your app generate     
}}
于 2018-05-29T11:25:58.180 回答
1

可以编写一个自定义端点来更新用户角色,并添加一个相应的控制器操作,如下所示:

module.exports = {
    updateUserRole: async ctx => {
       return await strapi.services.auth.updateUserRole (ctx.request.body.user, 
                                                         ctx.request.body.roleType);

    }
};

更新用户角色的身份验证服务可以在 api/auth/services/Auth.js 中定义如下:

    module.exports = {

        updateUserRole: async (userid, roleType) => {
            const role = await strapi.query('role', 'users-permissions').findOne({ type:roleType }, []);
        if ( role ) {
            strapi.query('user',  'users-permissions').update({ id: userid }, { role: role.id });
            return true;
        }

        return false;
    }
};
于 2020-01-04T06:40:52.370 回答
0

https://github.com/strapi/strapi/blob/master/packages/strapi-plugin-users-permissions/controllers/Auth.js#L261

在第 261 行前面的 root/plugins/users-permissions/controllers/Auth.js 中添加以下代码

const roleType = params.role || settings.default_role

并更改第 261 行

const role = hasAdmin === false ? root : await strapi.query('role', 'users-permissions').findOne({ type: roleType }, []);

帖子会喜欢

{
    "username": "test user",
    "email": "qqqqqq@gmail.com",
    "password": "qqqqqq",
    "role": "boss" 
}

boss <--- 从管理面板创建的角色

在strapi v-3.0.0-alpha.25.2上工作

于 2019-04-10T14:35:33.060 回答