mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 05:40:31 +00:00
WIP Roles and permissions access control.
This commit is contained in:
@@ -2,7 +2,7 @@ import { create, expect } from '~/testInit';
|
||||
import '@/models/Account';
|
||||
import AccountType from '@/models/AccountType';
|
||||
|
||||
describe.only('Model: AccountType', () => {
|
||||
describe('Model: AccountType', () => {
|
||||
it('Shoud account type model has many associated accounts.', async () => {
|
||||
const accountType = await create('account_type');
|
||||
await create('account', { account_type_id: accountType.id });
|
||||
|
||||
21
server/tests/models/Permission.test.js
Normal file
21
server/tests/models/Permission.test.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import { create } from '~/testInit';
|
||||
import Resource from '@/models/Resource';
|
||||
import '@/models/Role';
|
||||
|
||||
describe('Model: Permission', () => {
|
||||
it('Permission model may has associated role.', async () => {
|
||||
const roleHasPermissions = await create('role_has_permission');
|
||||
const resourceModel = await Resource.where('id', roleHasPermissions.resource_id).fetch();
|
||||
const roleModel = await resourceModel.role().fetch();
|
||||
|
||||
console.log(roleModel);
|
||||
});
|
||||
|
||||
it('Permission model may has associated resource.', async () => {
|
||||
const roleHasPermissions = await create('role_has_permission');
|
||||
const resourceModel = await Resource.where('id', roleHasPermissions.resource_id).fetch();
|
||||
const permissionModel = await resourceModel.permission().fetch();
|
||||
|
||||
console.log(permissionModel);
|
||||
});
|
||||
});
|
||||
0
server/tests/models/Resource.test.js
Normal file
0
server/tests/models/Resource.test.js
Normal file
34
server/tests/models/Role.test.js
Normal file
34
server/tests/models/Role.test.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import { expect, create } from '~/testInit';
|
||||
import Role from '@/models/Role';
|
||||
import '@/models/Permission';
|
||||
import '@/models/Resource';
|
||||
|
||||
describe('Model: Role', () => {
|
||||
it('Role model may has many associated users', async () => {
|
||||
const userHasRole = await create('user_has_role');
|
||||
await create('user_has_role', { role_id: userHasRole.role_id });
|
||||
|
||||
const roleModel = await Role.where('id', userHasRole.role_id).fetch();
|
||||
const roleUsers = await roleModel.users().fetch();
|
||||
|
||||
expect(roleUsers).to.have.lengthOf(2);
|
||||
});
|
||||
|
||||
it('Role model may has many associated permissions.', async () => {
|
||||
const roleHasPermissions = await create('role_has_permission');
|
||||
|
||||
const roleModel = await Role.where('id', roleHasPermissions.role_id).fetch();
|
||||
const rolePermissions = await roleModel.permissions().fetch();
|
||||
|
||||
expect(rolePermissions).to.have.lengthOf(1);
|
||||
});
|
||||
|
||||
it('Role model may has many associated resources that has some or all permissions.', async () => {
|
||||
const roleHasPermissions = await create('role_has_permission');
|
||||
|
||||
const roleModel = await Role.where('id', roleHasPermissions.role_id).fetch();
|
||||
const roleResources = await roleModel.resources().fetch();
|
||||
|
||||
expect(roleResources).to.have.lengthOf(1);
|
||||
});
|
||||
});
|
||||
15
server/tests/models/User.test.js
Normal file
15
server/tests/models/User.test.js
Normal file
@@ -0,0 +1,15 @@
|
||||
import { create, expect } from '~/testInit';
|
||||
import User from '@/models/User';
|
||||
import '@/models/Role';
|
||||
|
||||
describe('Model: User', () => {
|
||||
it('User model may has many associated roles.', async () => {
|
||||
const userHasRole = await create('user_has_role');
|
||||
await create('user_has_role', { user_id: userHasRole.user_id });
|
||||
|
||||
const userModel = await User.where('id', userHasRole.user_id).fetch();
|
||||
const userRoles = await userModel.roles().fetch();
|
||||
|
||||
expect(userRoles).to.have.lengthOf(2);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user