pycaravel: This module is designed to simplify continuous integration (CI) of data from multiple projects.
Source code for caravel.nextcloud.api_wrappers.user
from ..base import WithRequester
[docs]
class User(WithRequester):
API_URL = "/ocs/v1.php/cloud/users"
SUCCESS_CODE = 100
[docs]
def add_user(self, uid, passwd):
""" Create a new user on the Nextcloud server.
"""
msg = {'userid': uid, 'password': passwd}
return self.requester.post("", msg)
[docs]
def get_users(self, search=None, limit=None, offset=None):
""" Retrieve a list of users from the Nextcloud server.
"""
params = {
'search': search,
'limit': limit,
'offset': offset
}
return self.requester.get(params=params)
[docs]
def get_user(self, uid):
""" Retrieve information about a single user.
"""
return self.requester.get(f"{uid}")
[docs]
def edit_user(self, uid, what, value):
""" Edit attributes related to a user.
Users are able to edit email, displayname and password; admins can
also edit the quota value.
"""
what_to_key_map = {
"email": "email", "quota": "quota", "phone": "phone",
"address": "address", "website": "website", "twitter": "twitter",
"displayname": "displayname", "password": "password"
}
assert what in what_to_key_map, (
"You have chosen to edit user's '{what}', but you can choose only"
"from: {choices}".format(
what=what, choices=", ".join(what_to_key_map.keys()))
)
url = f"{uid}"
msg = {
"key": what_to_key_map[what],
"value": value,
}
return self.requester.put(url, msg)
[docs]
def disable_user(self, uid):
""" Disable a user on the Nextcloud server so that the user cannot
login anymore.
"""
return self.requester.put(f"{uid}/disable")
[docs]
def enable_user(self, uid):
""" Enable a user on the Nextcloud server so that the user can login
again.
"""
return self.requester.put(f"{uid}/enable")
[docs]
def delete_user(self, uid):
""" Delete a user from the Nextcloud server.
"""
return self.requester.delete(f"{uid}")
[docs]
def add_to_group(self, uid, gid):
""" Add the specified user to the specified group.
"""
url = f"{uid}/groups"
msg = {'groupid': gid}
return self.requester.post(url, msg)
[docs]
def remove_from_group(self, uid, gid):
""" Remove the specified user from the specified group.
"""
url = f"{uid}/groups"
msg = {'groupid': gid}
return self.requester.delete(url, msg)
[docs]
def create_subadmin(self, uid, gid):
""" Make a user the subadmin of a group.
"""
url = f"{uid}/subadmins"
msg = {'groupid': gid}
return self.requester.post(url, msg)
[docs]
def remove_subadmin(self, uid, gid):
""" Remove the subadmin rights for the user specified from the group
specified.
"""
url = f"{uid}/subadmins"
msg = {'groupid': gid}
return self.requester.delete(url, msg)
[docs]
def get_subadmin_groups(self, uid):
""" Get the groups in which the user is a subadmin.
"""
url = f"{uid}/subadmins"
return self.requester.get(url)
[docs]
def resend_welcome_mail(self, uid):
""" Trigger the welcome email for this user again.
"""
url = f"{uid}/welcome"
return self.requester.post(url)
Follow us