Added support for retrieving info about authorizables and for adding and

removing members to a group
This commit is contained in:
Rick Rongen
2019-08-01 13:48:12 +02:00
parent 21a23a70cc
commit 50e62ba400

View File

@@ -1,11 +1,11 @@
import json import json
from typing import Union, List, Optional from typing import Union, List, Optional
import requests
from urllib.parse import urljoin from urllib.parse import urljoin
from .simplenode import SimpleNode import requests
from .patchbuilder import PatchBuilder from .patchbuilder import PatchBuilder
from .simplenode import SimpleNode
# TODO validation # TODO validation
@@ -41,6 +41,8 @@ WORKFLOW_LIST_MODELS = '/libs/cq/workflow/content/console/workflows.json'
CREATE_ASSET = '.createasset.html' CREATE_ASSET = '.createasset.html'
SECURITY_AUTHORIZABLES = "/bin/security/authorizables.json"
JSON_DATA_EXTENSION = '.1.json' JSON_DATA_EXTENSION = '.1.json'
QUERY_TYPES = { QUERY_TYPES = {
@@ -343,3 +345,27 @@ class Connection:
) )
resp.raise_for_status() resp.raise_for_status()
return resp.json()['path'] return resp.json()['path']
def get_authorizables(self, start: int = 0, user_filter: str = "", ml: int = 0, limit: int = 500, hide_groups: bool = False, hide_users: bool = False):
args = {
'start': start,
'filter': user_filter,
'ml': ml,
'limit': limit,
'hideGroups': json.dumps(hide_groups),
'hideUsers': json.dumps(hide_users),
}
url = self._host + SECURITY_AUTHORIZABLES
resp = self._session.get(url, params=args)
return resp.json()['authorizables']
def add_remove_group(self, path: str, group_name: str):
args = {
'memberAction': (None, 'memberOf'),
'memberEntry': (None, group_name),
}
url = self._host + path
resp = self._session.post(url, files=args)
print(resp.text)
return resp.ok