Files
pillar-python-sdk/pillarsdk/users.py
Sybren A. Stüvel 36dbf4a778 Allow PATCHing users
This is used to set the username from the settings view.
2019-05-31 14:19:24 +02:00

41 lines
1.3 KiB
Python
Executable File

import hashlib
import urllib
from .resource import List
from .resource import Find
from .resource import Create
from .resource import Post
from .resource import Patch
from .resource import Update
from .resource import Delete
class User(List, Find, Create, Post, Update, Delete, Patch):
"""User class wrapping the REST nodes endpoint
"""
path = "users"
def gravatar(self, size=64):
"""Deprecated: return the Gravatar URL.
.. deprecated::
Use of Gravatar is deprecated, in favour of our self-hosted avatars.
See pillar.api.users.avatar.url(user).
"""
parameters = {'s':str(size), 'd':'mm'}
return "https://www.gravatar.com/avatar/" + \
hashlib.md5(self.email.lower()).hexdigest() + \
"?" + urllib.urlencode(parameters)
@classmethod
def me(cls, params=None, api=None):
"""Returns info about the current user, identified by auth token."""
return cls.find_from_endpoint('/users/me', params=params, api=api)
def set_username(self, new_username: str, api):
"""PATCH the user to set the new username."""
self.username = new_username
return self.patch({'op': 'set-username', 'username': new_username},
api=api)