37 lines
1 KiB
Python
37 lines
1 KiB
Python
from abc import ABCMeta, abstractmethod
|
|
from six import add_metaclass
|
|
|
|
@add_metaclass(ABCMeta)
|
|
class SuperuserConfigDataInterface(object):
|
|
"""
|
|
Interface that represents all data store interactions required by the superuser config API.
|
|
"""
|
|
@abstractmethod
|
|
def is_valid(self):
|
|
"""
|
|
Returns true if the configured database is valid.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def has_users(self):
|
|
"""
|
|
Returns true if there are any users defined.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def create_superuser(self, username, password, email):
|
|
"""
|
|
Creates a new superuser with the given username, password and email. Returns the user's UUID.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def has_federated_login(self, username, service_name):
|
|
"""
|
|
Returns true if the matching user has a federated login under the matching service.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def attach_federated_login(self, username, service_name, federated_username):
|
|
"""
|
|
Attaches a federatated login to the matching user, under the given service.
|
|
"""
|