Skip to content

Commit 5d14d17

Browse files
authored
Merge pull request #202 from Caascad/permissions_endpoints
Add permissions update endpoint
2 parents eb90b0c + f214647 commit 5d14d17

File tree

3 files changed

+56
-1
lines changed

3 files changed

+56
-1
lines changed

rocketchat_API/APISections/permissions.py

+6
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,9 @@ class RocketChatPermissions(RocketChatBase):
55
def permissions_list_all(self, **kwargs):
66
"""Returns all permissions from the server."""
77
return self.call_api_get("permissions.listAll", kwargs=kwargs)
8+
9+
def permissions_update(self, permissions, **kwargs):
10+
"""Edits permissions on the server."""
11+
return self.call_api_post(
12+
"permissions.update", permissions=permissions, kwargs=kwargs
13+
)

tests/test_permissions.py

+49
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,59 @@ def test_permissions_list_all(logged_rocket):
55
assert "remove" in permissions_list_all
66

77

8+
# pylint: disable=invalid-name
89
def test_permissions_list_all_with_updatedSince(logged_rocket):
910
permissions_list_all = logged_rocket.permissions_list_all(
1011
updatedSince="2017-11-25T15:08:17.248Z"
1112
).json()
1213
assert permissions_list_all.get("success")
1314
assert "update" in permissions_list_all
1415
assert "remove" in permissions_list_all
16+
17+
18+
def test_permissions_update(logged_rocket):
19+
def get_updated_roles(permission, permissions_update):
20+
for permission_update in permissions_update:
21+
if permission.get("_id", "A") == permission_update.get("_id", "B"):
22+
return permission_update.get("roles")
23+
24+
# Permission not found
25+
raise ValueError
26+
27+
def check_update(permissions, permissions_update):
28+
for permission in permissions:
29+
try:
30+
if permission.get("roles") != get_updated_roles(
31+
permission, permissions_update
32+
):
33+
return False
34+
except ValueError:
35+
return False
36+
37+
return True
38+
39+
permissions = [
40+
{"_id": "access-permissions", "roles": ["admin", "bot"]},
41+
{"_id": "add-user-to-any-c-room", "roles": ["admin"]},
42+
]
43+
permissions_update = logged_rocket.permissions_update(
44+
permissions=permissions
45+
).json()
46+
assert permissions_update.get("success")
47+
assert check_update(permissions, permissions_update.get("permissions", []))
48+
49+
permissions_wrong_id = [
50+
{"_id": "wrong-id", "roles": ["admin", "bot"]},
51+
]
52+
assert (
53+
check_update(permissions_wrong_id, permissions_update.get("permissions", []))
54+
is False
55+
)
56+
57+
permissions_wrong_roles = [
58+
{"_id": "access-permissions", "roles": ["bot"]},
59+
]
60+
assert (
61+
check_update(permissions_wrong_roles, permissions_update.get("permissions", []))
62+
is False
63+
)

tests/test_user.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def test_users_set_avatar_from_file(logged_rocket):
181181
def test_users_set_avatar_from_url(logged_rocket):
182182
# ToDo: Modify this test so it can run while offline
183183
users_set_avatar = logged_rocket.users_set_avatar(
184-
avatar_url="https://avatars.dicebear.com/api/bottts/rocket.svg"
184+
avatar_url="https://upload.wikimedia.org/wikipedia/commons/7/77/Wikipedia_svg_logo.svg"
185185
).json()
186186
assert users_set_avatar.get("success"), users_set_avatar.get("error")
187187

0 commit comments

Comments
 (0)