From d29d7eebc3bbbbe2bb019ddb32355d62658e5b8d Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Fri, 30 Sep 2016 20:26:13 +0200 Subject: backend/user: Split _store and register Separate the method to persist a new account from the register method so that common checks could be done in the base class and the concrete implementations can overwrite only the storage part. --- accounts/backend/user/__init__.py | 16 ++++++++++++++-- accounts/backend/user/dummy.py | 8 +------- accounts/backend/user/ldap.py | 5 +---- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/accounts/backend/user/__init__.py b/accounts/backend/user/__init__.py index af0cc63..57ba952 100644 --- a/accounts/backend/user/__init__.py +++ b/accounts/backend/user/__init__.py @@ -107,9 +107,15 @@ class Backend(object): def register(self, account): """ - Persists an account in the backend. + Register a new user account. + + This message checks the given account for plausibility, + get a new uidNumber and store the account into the backend. """ - raise NotImplementedError() + if account.password is None: + raise ValueError("Password required for register") + + self._store(account) def update(self, account, as_admin=False): """ @@ -122,3 +128,9 @@ class Backend(object): Deletes an account permanently. """ raise NotImplementedError() + + def _store(self, account): + """ + Persists an account in the backend. + """ + raise NotImplementedError() diff --git a/accounts/backend/user/dummy.py b/accounts/backend/user/dummy.py index cc43dc5..867db2e 100644 --- a/accounts/backend/user/dummy.py +++ b/accounts/backend/user/dummy.py @@ -64,13 +64,7 @@ class DummyBackend(Backend): return results - def register(self, account): - """ - Persists an account in the backend. - """ - if account.password is None: - raise ValueError("Password required for register") - + def _store(self, account): self._storage.append(deepcopy(account)) def update(self, account, as_admin=False): diff --git a/accounts/backend/user/ldap.py b/accounts/backend/user/ldap.py index 6ab02c6..ea1b7fc 100644 --- a/accounts/backend/user/ldap.py +++ b/accounts/backend/user/ldap.py @@ -92,10 +92,7 @@ class LdapBackend(Backend): return accounts - def register(self, account): - """ - Persists an account in the backend. - """ + def _store(self, account): conn = self._connect_as_admin() user_dn = self._format_dn([('uid', account.uid), ('ou', 'users')]) -- cgit v1.2.3-1-g7c22