Remove added rules from permission when cancel editing
Previously, the UI removed rules correctly, but they were not removed as expected from the underlying object. If a user was to edit again, change something different, and save, they would experience an unexpected result. Change-Id: If22ed59b9cdf5b93232c2f6a69a14d18575184bf
This commit is contained in:
@@ -102,6 +102,11 @@
|
|||||||
delete this.permission.value.deleted;
|
delete this.permission.value.deleted;
|
||||||
this._groupFilter = '';
|
this._groupFilter = '';
|
||||||
this._rules = this._rules.filter(rule => !rule.value.added);
|
this._rules = this._rules.filter(rule => !rule.value.added);
|
||||||
|
for (const key of Object.keys(this.permission.value.rules)) {
|
||||||
|
if (this.permission.value.rules[key].added) {
|
||||||
|
delete this.permission.value.rules[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Restore exclusive bit to original.
|
// Restore exclusive bit to original.
|
||||||
this.set(['permission', 'value', 'exclusive'],
|
this.set(['permission', 'value', 'exclusive'],
|
||||||
|
|||||||
@@ -307,7 +307,7 @@ limitations under the License.
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
element.editing = true;
|
||||||
assert.equal(element._rules.length, 2);
|
assert.equal(element._rules.length, 2);
|
||||||
assert.equal(Object.keys(element._groupsWithRules).length, 2);
|
assert.equal(Object.keys(element._groupsWithRules).length, 2);
|
||||||
element._handleAddRuleItem(e);
|
element._handleAddRuleItem(e);
|
||||||
@@ -316,6 +316,11 @@ limitations under the License.
|
|||||||
assert.equal(Object.keys(element._groupsWithRules).length, 3);
|
assert.equal(Object.keys(element._groupsWithRules).length, 3);
|
||||||
assert.deepEqual(element.permission.value.rules['newUserGroupId'],
|
assert.deepEqual(element.permission.value.rules['newUserGroupId'],
|
||||||
{action: 'ALLOW', min: -2, max: 2, added: true});
|
{action: 'ALLOW', min: -2, max: 2, added: true});
|
||||||
|
|
||||||
|
// New rule should be removed if cancel from editing.
|
||||||
|
element.editing = false;
|
||||||
|
assert.equal(element._rules.length, 2);
|
||||||
|
assert.equal(Object.keys(element.permission.value.rules).length, 2);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('removing the permission', () => {
|
test('removing the permission', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user