diff rhodecode/model/user.py @ 705:9e9f1b919c0c beta

implements #60, ldap configuration and authentication. fixes settings to use settings Model
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 17 Nov 2010 22:00:36 +0100
parents cb0d9ce6ac5c
children 1bb0fcdec895
line wrap: on
line diff
--- a/rhodecode/model/user.py	Wed Nov 17 21:29:02 2010 +0100
+++ b/rhodecode/model/user.py	Wed Nov 17 22:00:36 2010 +0100
@@ -68,6 +68,36 @@
             self.sa.rollback()
             raise
 
+    def create_ldap(self, username, password):
+        """
+        Checks if user is in database, if not creates this user marked
+        as ldap user
+        :param username:
+        :param password:
+        """
+
+        if self.get_by_username(username) is None:
+            try:
+                new_user = User()
+                new_user.username = username
+                new_user.password = password
+                new_user.email = '%s@ldap.server' % username
+                new_user.active = True
+                new_user.is_ldap = True
+                new_user.name = '%s@ldap' % username
+                new_user.lastname = ''
+
+
+                self.sa.add(new_user)
+                self.sa.commit()
+                return True
+            except:
+                log.error(traceback.format_exc())
+                self.sa.rollback()
+                raise
+
+        return False
+
     def create_registration(self, form_data):
         from rhodecode.lib.celerylib import tasks, run_task
         try: