test(rbac): isolate admin permission mutation
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
This commit is contained in:
parent
3cdab1dd7c
commit
933f0a5471
1 changed files with 18 additions and 3 deletions
|
|
@ -188,9 +188,24 @@ def test_admin_is_explicit_and_loses_removed_permission(app):
|
||||||
assert not has_permission('*', user)
|
assert not has_permission('*', user)
|
||||||
assert has_permission('stock.view', user)
|
assert has_permission('stock.view', user)
|
||||||
stock = Permission.query.filter_by(code='stock.view').first()
|
stock = Permission.query.filter_by(code='stock.view').first()
|
||||||
RolePermission.query.filter_by(role_id=admin.id, permission_id=stock.id).delete()
|
link = RolePermission.query.filter_by(
|
||||||
|
role_id=admin.id, permission_id=stock.id
|
||||||
|
).one()
|
||||||
|
try:
|
||||||
|
db.session.delete(link)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
assert not has_permission('stock.view', user)
|
assert not has_permission('stock.view', user)
|
||||||
|
finally:
|
||||||
|
# Ce test vérifie un retrait temporaire ; il ne doit pas laisser
|
||||||
|
# le rôle système admin dans un état modifié pour les tests
|
||||||
|
# suivants (notamment les smoke tests stock).
|
||||||
|
if not RolePermission.query.filter_by(
|
||||||
|
role_id=admin.id, permission_id=stock.id
|
||||||
|
).first():
|
||||||
|
db.session.add(RolePermission(
|
||||||
|
role_id=admin.id, permission_id=stock.id, effect='allow'
|
||||||
|
))
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
|
|
||||||
def test_last_super_admin_cannot_be_removed_or_deactivated(app):
|
def test_last_super_admin_cannot_be_removed_or_deactivated(app):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue