make unpermitted attribute handling in Users.update more specific
This commit is contained in:
parent
ab42245797
commit
8af23fda36
@ -77,8 +77,10 @@ class Users(object):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def update(cls, user, user_delta):
|
def update(cls, user, user_delta):
|
||||||
if not set(user_delta.keys()).issubset(Users._UPDATEABLE_ATTRS):
|
delta_set = set(user_delta.keys())
|
||||||
raise UnauthorizedError(user, "update DOD ID")
|
if not set(delta_set).issubset(Users._UPDATEABLE_ATTRS):
|
||||||
|
unpermitted = delta_set - Users._UPDATEABLE_ATTRS
|
||||||
|
raise UnauthorizedError(user, "update {}".format(", ".join(unpermitted)))
|
||||||
|
|
||||||
for key, value in user_delta.items():
|
for key, value in user_delta.items():
|
||||||
setattr(user, key, value)
|
setattr(user, key, value)
|
||||||
|
@ -79,5 +79,7 @@ def test_update_user():
|
|||||||
|
|
||||||
def test_update_user_with_dod_id():
|
def test_update_user_with_dod_id():
|
||||||
new_user = Users.create(DOD_ID, "developer")
|
new_user = Users.create(DOD_ID, "developer")
|
||||||
with pytest.raises(UnauthorizedError):
|
with pytest.raises(UnauthorizedError) as excinfo:
|
||||||
Users.update(new_user, {"dod_id": "1234567890"})
|
Users.update(new_user, {"dod_id": "1234567890"})
|
||||||
|
|
||||||
|
assert "dod_id" in str(excinfo.value)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user