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:
Becky Siegel
2018-01-19 16:56:38 -08:00
parent 394da19619
commit a85346a70a
2 changed files with 11 additions and 1 deletions

View File

@@ -102,6 +102,11 @@
delete this.permission.value.deleted;
this._groupFilter = '';
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.
this.set(['permission', 'value', 'exclusive'],

View File

@@ -307,7 +307,7 @@ limitations under the License.
},
},
};
element.editing = true;
assert.equal(element._rules.length, 2);
assert.equal(Object.keys(element._groupsWithRules).length, 2);
element._handleAddRuleItem(e);
@@ -316,6 +316,11 @@ limitations under the License.
assert.equal(Object.keys(element._groupsWithRules).length, 3);
assert.deepEqual(element.permission.value.rules['newUserGroupId'],
{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', () => {