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.
def has_users(self):
Returns true if there are any users defined.
def create_superuser(self, username, password, email):
Creates a new superuser with the given username, password and email. Returns the user's UUID.
def has_federated_login(self, username, service_name):
Returns true if the matching user has a federated login under the matching service.
def attach_federated_login(self, username, service_name, federated_username):
Attaches a federatated login to the matching user, under the given service.