Пример #1
0
    def get_manager(self, manager_cn):
        try:
            manager_obj = LDAPUser.objects.get(cn=manager_cn)
        except LDAPUser.DoesNotExist:
            manager_obj = LDAPUser(
                cn=manager_cn,
                displayName='',
                mail='',
                hire_date='1900-01-01')
            try:
                print "Adding blank manager: %s" % manager_cn
                manager_obj.save()
            except IntegrityError as e:
                print "Trying to save:%s" % info
                transaction.rollback()
                raise e

        return manager_obj
Пример #2
0
    def write_user_info_to_db(self, info):
        #print "INFO:%s" % info
        # make sure the manager exists
        if 'manager' in info:
            manager = self.get_manager(info['manager'])
        else:
            manager = None

        try:
            ldap_user_obj = LDAPUser.objects.get(cn=info['CN'])
            # overwrite
            ldap_user_obj.cn = info['CN']
            ldap_user_obj.displayName = info['displayName']
            ldap_user_obj.mail = info['mail']
            ldap_user_obj.hire_date = info['whenCreated']
            ldap_user_obj.department = info.get('department', '')
            ldap_user_obj.title = info.get('title', '')
            ldap_user_obj.state = info.get('st', '')
            ldap_user_obj.location = info.get('l', '')

            ldap_user_obj.manager = manager

        except LDAPUser.DoesNotExist:
            ldap_user_obj = LDAPUser(
                cn=info['CN'],
                displayName=info['displayName'],
                mail=info['mail'],
                hire_date=info['whenCreated'],
                department=info.get('department', ''),
                title=info.get('title', ''),
                state=info.get('st', ''),
                location=info.get('l', ''),
                manager=manager)

        try:
            print "Saving %s" % info['CN']
            ldap_user_obj.save()
        except IntegrityError as e:
            print "Trying to save:%s" % info
            transaction.rollback()
            raise e