新成员加入 wix 时自动分配角色

时间:2021-06-22 06:13:08

标签: javascript wix velo

我有一个教学网站,我想创建一些可供任何注册成员(学生和教师)访问的页面和一些仅限特定成员(教师)访问的页面。我为教师和学生创建了两个成员角色,以防止其中一个进入为另一个指定的页面,因为它们在同一个数据库中(私有成员数据),我遵循手动将成员添加到成员角色的方法。但是我不想手动做,我想要的是:当一个人注册网站时,确定他是老师还是学生,不允许学生访问教师页面,以及教师.有没有办法做到这一点!

我试过assignrole()代码但是没有用,用户没有被分配角色。

参考:https://www.wix.com/velo/reference/wix-users-backend/roles-obj/assignrole

这是我的代码:

role.jsw:

import {roles} from 'wix-users-backend';

 export function assignRole(roleId, memberId) {
 return roles.assignRole(roleId, memberId, { suppressAuth: false })
 .then( () => {
      console.log("Role assigned to member");
 })
 .catch((error) => {
      console.log(error);
 });
}

注册页面代码:

import {assignRole} from 'backend/role';
 
 function registerTeacher() {

 let email = $w("#email").value;
 let password = $w("#password").value;
 let first = $w("#fname").value;
 let last = $w("#lastName").value;

wixUsers.register(email, password, {
      contactInfo: {
 "firstName": first,
 "lastName": last
 }
 })
 .then((results) => {
 let roleId="be13f34e-cf4a-4f33-ae7f-c2313d824206";//Teacher role
       assignRole(roleId, results.user.id);
    }
     });

请帮忙!

1 个答案:

答案 0 :(得分:0)

已解决:我需要做的唯一更改是:suppressAuth: true

export function assignRole(roleId, memberId) {
 return roles.assignRole(roleId, memberId, { suppressAuth: true })
 .then( () => {
      console.log("Role assigned to member");
 })
 .catch((error) => {
      console.log("failed to assing role"+ error);
 });
}