新成员加入wix时自动分配角色
Auto assign role when a new member joins in wix
我有一个教学网站,我想创建一些可供任何注册会员(学生和教师)访问的页面,以及一些仅限特定会员(教师)访问的页面。我为老师和学生创建了两个成员角色,以防止其中一个进入另一个指定的页面,因为他们在同一个数据库(私有成员数据)中,我按照手动添加成员的方法加入成员角色。但我不想手动做,我想要的是:当一个人注册到该站点时,确定他是老师还是学生,不允许学生访问教师页面以及教师.有办法吗!
我试过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);
}
});
请帮忙!
已解决:我唯一需要做的改变是: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);
});
}
我有一个教学网站,我想创建一些可供任何注册会员(学生和教师)访问的页面,以及一些仅限特定会员(教师)访问的页面。我为老师和学生创建了两个成员角色,以防止其中一个进入另一个指定的页面,因为他们在同一个数据库(私有成员数据)中,我按照手动添加成员的方法加入成员角色。但我不想手动做,我想要的是:当一个人注册到该站点时,确定他是老师还是学生,不允许学生访问教师页面以及教师.有办法吗!
我试过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);
}
});
请帮忙!
已解决:我唯一需要做的改变是: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);
});
}