在我的WSO2 api商店实例中,我想进行一些修改,以便我只允许一些操作给Admin而不是普通的Publiser / Subscriber。例如,如果我想重新编码其他用户来编辑我发布的API,并且只应授予Admin角色修改任何API的权限。为此,我如何获得用户角色?
我试图从碳模块中获取角色
/modules/carbon/scripts/user/user.js
User.prototype.getRoles = function () {
return this.um.manager.getRoleListOfUser(this.username);
};
User.prototype.hasRoles = function (roles) {
var i, j, role,
rs = this.getRoles(),
length1 = roles.length,
length2 = rs.length;
L1:
for (i = 0; i < length1; i++) {
//Array.indexOf() fails due to Java String vs JS String difference
role = roles[i];
for (j = 0; j < length2; j++) {
if (role == rs[j]) {
continue L1;
}
}
return false;
}
return true;
};
但是调用此方法失败了。任何人都知道如何获得登录用户的角色,或者如何检查登录用户是否是管理员?
答案 0 :(得分:1)
您可以通过为用户分配所需的角色来实现此目的,并查看Adding User Roles
或者
您可以使用WSO2 API Manager的发布者API "Validate Roles"来检索登录用户的角色。
Description :
Check if the user logged in user is any one in a given list of users
URI :
http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag
URI Parameters :
action=validateRoles&roles=<list of roles>
HTTP Methods :
GET
Example :
curl -b cookies "http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag?action=validateRoles&roles=admin"