Browse Source

check it when authority is string and currentAuthority is array. And update CheckPermissions test

pull/1742/head
ubbcou 8 years ago
committed by 陈帅
parent
commit
f347ead84d
  1. 8
      src/components/Authorized/CheckPermissions.js
  2. 18
      src/components/Authorized/CheckPermissions.test.js

8
src/components/Authorized/CheckPermissions.js

@ -45,6 +45,14 @@ const checkPermissions = (authority, currentAuthority, target, Exception) => {
if (authority === currentAuthority) {
return target;
}
if (Array.isArray(currentAuthority)) {
for (let i = 0; i < currentAuthority.length; i += 1) {
const element = currentAuthority[i];
if (authority.indexOf(element) >= 0) {
return target;
}
}
}
return Exception;
}

18
src/components/Authorized/CheckPermissions.test.js

@ -34,4 +34,22 @@ describe('test CheckPermissions', () => {
it('Correct Function permission authentication', () => {
expect(checkPermissions(() => true, 'guest', target, error)).toEqual('ok');
});
it('authority is string, currentAuthority is array, return ok', () => {
expect(checkPermissions('user', ['user'], target, error)).toEqual('ok');
});
it('authority is string, currentAuthority is array, return ok', () => {
expect(checkPermissions('user', ['user', 'admin'], target, error)).toEqual('ok');
});
it('authority is array, currentAuthority is array, return ok', () => {
expect(checkPermissions(['user', 'admin'], ['user', 'admin'], target, error)).toEqual('ok');
});
it('Wrong Function permission authentication', () => {
expect(checkPermissions(() => false, ['user'], target, error)).toEqual('error');
});
it('Correct Function permission authentication', () => {
expect(checkPermissions(() => true, ['user'], target, error)).toEqual('ok');
});
it('authority is undefined , return ok', () => {
expect(checkPermissions(null, ['user'], target, error)).toEqual('ok');
});
});

Loading…
Cancel
Save