diff options
author | Liad Shani <liadff@gmail.com> | 2011-10-29 17:03:33 +0200 |
---|---|---|
committer | Liad Shani <liadff@gmail.com> | 2011-10-29 17:03:33 +0200 |
commit | 958e109ccf04e77e0c6f896e18714499229d88ed (patch) | |
tree | 35fa538dbb568d62ceeb35262a782693da5732bb /rhodecode/model/user.py | |
parent | 8f03c8bf0ecacf62f838622761f177feefce2a33 (diff) |
Added basic automatic user creation for container auth
--HG--
branch : beta
Diffstat (limited to 'rhodecode/model/user.py')
-rw-r--r-- | rhodecode/model/user.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py index 60b45137..0d40c780 100644 --- a/rhodecode/model/user.py +++ b/rhodecode/model/user.py @@ -92,6 +92,35 @@ class UserModel(BaseModel): self.sa.rollback() raise + def create_for_container_auth(self, username, attrs): + """ + Creates the given user if it's not already in the database + + :param username: + :param attrs: + """ + if self.get_by_username(username, case_insensitive=True) is None: + try: + new_user = User() + new_user.username = username + new_user.password = None + new_user.api_key = generate_api_key(username) + new_user.email = attrs['email'] + new_user.active = True + new_user.name = attrs['name'] + new_user.lastname = attrs['lastname'] + + self.sa.add(new_user) + self.sa.commit() + return True + except (DatabaseError,): + log.error(traceback.format_exc()) + self.sa.rollback() + raise + log.debug('User %s already exists. Skipping creation of account for container auth.', + username) + return False + def create_ldap(self, username, password, user_dn, attrs): """ Checks if user is in database, if not creates this user marked |