aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/user.py
diff options
context:
space:
mode:
authorLiad Shani <liadff@gmail.com>2011-10-29 17:03:33 +0200
committerLiad Shani <liadff@gmail.com>2011-10-29 17:03:33 +0200
commit958e109ccf04e77e0c6f896e18714499229d88ed (patch)
tree35fa538dbb568d62ceeb35262a782693da5732bb /rhodecode/model/user.py
parent8f03c8bf0ecacf62f838622761f177feefce2a33 (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.py29
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