fixed e2e by adding acls where needed
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Carlos Jimenez Ruiz 2021-11-25 11:30:55 +01:00
parent 0838f34771
commit 5914e8e1ac
7 changed files with 75 additions and 64 deletions

View File

@ -8,8 +8,11 @@ INSERT INTO `salix`.`ACL`
('AccessToken', '*', '*', 'ALLOW', 'ROLE', 'developer'),
('MailAliasAccount', '*', '*', 'ALLOW', 'ROLE', 'marketing'),
('MailAliasAccount', '*', '*', 'ALLOW', 'ROLE', 'hr'),
('MailAlias', '*', '*', 'ALLOW', 'ROLE', 'hr'),
('MailForward', '*', '*', 'ALLOW', 'ROLE', 'marketing'),
('MailForward', '*', '*', 'ALLOW', 'ROLE', 'hr'),
('RoleInherit', '*', '*', 'ALLOW', 'ROLE', 'it'),
('RoleRole', '*', '*', 'ALLOW', 'ROLE', 'it'),
('AccountConfig', '*', '*', 'ALLOW', 'ROLE', 'sysadmin');
UPDATE `salix`.`ACL`
@ -20,5 +23,5 @@ DELETE FROM `salix`.`ACL`
WHERE id IN (280, 281);
UPDATE `salix`.`ACL`
SET accessType='*'
SET accessType='*', principalId='marketing'
WHERE id=279;

View File

@ -1,7 +1,7 @@
import selectors from '../../helpers/selectors.js';
import getBrowser from '../../helpers/puppeteer';
fdescribe('Account create and basic data path', () => {
describe('Account create and basic data path', () => {
let browser;
let page;
@ -59,13 +59,12 @@ fdescribe('Account create and basic data path', () => {
await page.accessToSection('account.card.roles');
const rolesCount = await page.countElement(selectors.accountRoles.anyResult);
expect(rolesCount).toEqual(4);
expect(rolesCount).toEqual(3);
});
describe('Descriptor option', () => {
describe('Edit role', () => {
it('should edit the role using the descriptor menu', async() => {
await page.waitForTimeout(1000); // sometimes descriptor fails to load it's functionalities without this timeout
await page.waitToClick(selectors.accountDescriptor.menuButton);
await page.waitToClick(selectors.accountDescriptor.changeRole);
await page.autocompleteSearch(selectors.accountDescriptor.newRole, 'adminBoss');
@ -76,7 +75,7 @@ fdescribe('Account create and basic data path', () => {
});
it('should reload the roles section to see now there are more roles', async() => {
// when role updated the db takes a while to return the changes, without this timeout the result would have been 4
// when role updates db takes time to return changes, without this timeout the result would have been 3
await page.waitForTimeout(1000);
await page.reloadSection('account.card.roles');
const rolesCount = await page.countElement(selectors.accountRoles.anyResult);

View File

@ -8,7 +8,7 @@ describe('Account Role create and basic data path', () => {
beforeAll(async() => {
browser = await getBrowser();
page = browser.page;
await page.loginAndModule('developer', 'account');
await page.loginAndModule('it', 'account');
await page.accessToSection('account.role');
});
@ -76,11 +76,11 @@ describe('Account Role create and basic data path', () => {
expect(subrolesCount).toEqual(1);
});
it('should search for the employee role group then access to the roles inheritance section then check the roles listed are the expected ones', async() => {
it('should access the employee roles inheritance then check the roles listed are the expected ones', async() => {
await page.accessToSearchResult('employee');
await page.accessToSection('account.role.card.inherited');
const rolesCount = await page.countElement(selectors.accountRoleInheritance.anyResult);
expect(rolesCount).toEqual(7);
expect(rolesCount).toEqual(6);
});
});

View File

@ -29,5 +29,11 @@
"foreignKey": "mailAlias",
"property": "id"
}
}
},
"acls": [{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
}]
}

View File

@ -5,32 +5,32 @@
model="model"
class="vn-w-sm">
<vn-card>
<div class="vn-list separated">
<a
ng-repeat="user in model.data track by user.id"
ui-sref="account.card.summary(::{id: user.id})"
translate-attr="{title: 'View user'}"
class="vn-item search-result">
<vn-item-section>
<h6>{{::user.nickname}}</h6>
<vn-label-value
label="Id"
value="{{::user.id}}">
</vn-label-value>
<vn-label-value
label="User"
value="{{::user.name}}">
</vn-label-value>
</vn-item-section>
<vn-item-section side>
<vn-icon-button
vn-click-stop="$ctrl.preview(user)"
vn-tooltip="Preview"
icon="preview">
</vn-icon-button>
</vn-item-section>
</a>
</div>
<div class="vn-list separated">
<a
ng-repeat="user in model.data track by user.id"
ui-sref="account.card.summary(::{id: user.id})"
translate-attr="{title: 'View user'}"
class="vn-item search-result">
<vn-item-section>
<h6>{{::user.nickname}}</h6>
<vn-label-value
label="Id"
value="{{::user.id}}">
</vn-label-value>
<vn-label-value
label="User"
value="{{::user.name}}">
</vn-label-value>
</vn-item-section>
<vn-item-section side>
<vn-icon-button
vn-click-stop="$ctrl.preview(user)"
vn-tooltip="Preview"
icon="preview">
</vn-icon-button>
</vn-item-section>
</a>
</div>
</vn-card>
</vn-data-viewer>
<vn-popup vn-id="summary">

View File

@ -6,26 +6,26 @@
model="model"
class="vn-w-sm">
<vn-card>
<div class="vn-list separated">
<a
ng-repeat="role in model.data track by role.id"
ui-sref="account.role.card.summary(::{id: role.id})"
ui-sref-opts="{inherit: false}"
translate-attr="{title: 'View role'}"
class="vn-item search-result">
<vn-item-section>
<h6>{{::role.name}}</h6>
<div>{{::role.description}}</div>
</vn-item-section>
<vn-item-section side>
<vn-icon-button
vn-click-stop="$ctrl.preview(role)"
vn-tooltip="Preview"
icon="preview">
</vn-icon-button>
</vn-item-section>
</a>
</div>
<div class="vn-list separated">
<a
ng-repeat="role in model.data track by role.id"
ui-sref="account.role.card.summary(::{id: role.id})"
ui-sref-opts="{inherit: false}"
translate-attr="{title: 'View role'}"
class="vn-item search-result">
<vn-item-section>
<h6>{{::role.name}}</h6>
<div>{{::role.description}}</div>
</vn-item-section>
<vn-item-section side>
<vn-icon-button
vn-click-stop="$ctrl.preview(role)"
vn-tooltip="Preview"
icon="preview">
</vn-icon-button>
</vn-item-section>
</a>
</div>
</vn-card>
</vn-data-viewer>
<vn-popup vn-id="summary">
@ -35,7 +35,7 @@
ui-sref-opts="{inherit: false}"
vn-tooltip="New role"
vn-bind="+"
vn-acl="developer"
vn-acl="it"
vn-acl-action="remove"
fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button>

View File

@ -97,7 +97,7 @@
"state": "account.card.aliases",
"component": "vn-user-aliases",
"description": "Mail aliases",
"acl": ["marketing"]
"acl": ["marketing", "hr"]
},
{
"url": "/role?q",
@ -110,7 +110,8 @@
"url": "/create",
"state": "account.role.create",
"component": "vn-role-create",
"description": "New role"
"description": "New role",
"acl": ["it"]
},
{
"url": "/:id",
@ -126,30 +127,32 @@
"description": "Summary",
"params": {
"role": "$ctrl.role"
}
},
"acl": ["it"]
},
{
"url": "/basic-data",
"state": "account.role.card.basicData",
"component": "vn-role-basic-data",
"description": "Basic data",
"acl": ["developer"],
"params": {
"role": "$ctrl.role"
}
},
"acl": ["it"]
},
{
"url": "/subroles",
"state": "account.role.card.subroles",
"component": "vn-role-subroles",
"acl": ["developer"],
"description": "Subroles"
"description": "Subroles",
"acl": ["it"]
},
{
"url": "/inherited",
"state": "account.role.card.inherited",
"component": "vn-role-inherited",
"description": "Inherited roles"
"description": "Inherited roles",
"acl": ["it"]
},
{
"url": "/alias?q",