私のコードが機能しない理由を理解できません。私は2つのクラスメソッドを持つ基本クラスを持っています。私は最初から2番目のクラスのメソッドにアクセスしようとしていますが、2番目のメソッドが関数ではないというエラーがタイプされています。 LOL私はこれをいつもしていますが、私は何が欠けていますか? ノードJS JavascriptクラスTypeErrorが関数ではありません
import models from '../../db';
class GroupRoleCheck {
constructor() {
this.group = null;
}
isGroupAdmin(params, callback) {
let groupId = params.groupId;
let userId = params.user.id;
models.Group.findById(groupId, {
include: [{ all: true }]
})
.then(group => {
this.group = group;
let found = this.group.Users.find(user => {
return userId === user.id;
});
if (found) {
return found.GroupMembers;
}
})
.then(members => {
if (members.role === 'groupAdmin') {
return callback(null, true);
} else {
this.isOrgSuper();
return callback({
message: 'not authorized'
}, false)
}
})
}
isOrgSuper() {
console.log('===================================');
console.log(this.group);
console.log('===================================');
}
}
export default GroupRoleCheck;
更新:
私はRBAC2を実装し、コールRBACを渡しています別のファイルからこれを呼び出しています。
import RBAC from 'rbac2';
import UserRoleCheck from '../permissions/user.permission';
import OrgRoleCheck from '../permissions/org.permission';
import GroupRoleCheck from '../permissions/group.permission';
let userRoleCheck = new UserRoleCheck();
let orgRoleCheck = new OrgRoleCheck();
let groupRoleCheck = new GroupRoleCheck();
let rules = [
// Users:
{
a: 'admin',
can: 'view organizations',
when: userRoleCheck.isOrgAdminAll
},
// Organizations:
{
a: 'admin',
can: 'view org details',
when: orgRoleCheck.isOrgAdmin
},
{
a: 'super',
can: 'edit org details',
when: orgRoleCheck.isOrgSuper
},
{
a: 'super',
can: 'delete org',
when: orgRoleCheck.isOrgSuper
},
// Groups:
{
a: 'admin',
can: 'create group',
when: orgRoleCheck.isOrgAdmin
},
{
a: 'admin',
can: 'view group details',
when: groupRoleCheck.isGroupAdmin
},
{
a: 'super',
can: 'edit group details',
when: orgRoleCheck.isOrgSuper
},
{
a: 'super',
can: 'delete group',
when: orgRoleCheck.isOrgSuper
}
];
let rbac = new RBAC(rules);
export default rbac;
これを別のコンポーネントからどのように呼び出すのですか? – cinnaroll45
これのコンテキストは、あなたがこれをどのように呼び出すかに応じて別のものに設定されている可能性があります。 – Cruiser
私は、コールがどこから来ているかを示すために投稿を更新しました。私はこれらの呼び出しをオブジェクトの配列を介してRBACに渡しています。 – Aaron