配置文件模块未同步,两个组(django_auth_ldap)均未同步

时间:2019-04-16 05:45:53

标签: django user-profile django-2.2

这是我关于SO的第一个问题。 我正在将django_ldap_auth 1.7与django 2.2版一起使用。根据他们的文档,可以同时填充UserProfile模型和User模型。我已经阅读了文档,以这种方式安排了settings.py和models.py。但是没有成功,我只能填充用户模型,而只能填充配置文件模型。

account / models.py

`class UserProfile(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    user_id = models.CharField(max_length=16, null=True, blank=True)
    firstname = models.TextField(null=True, blank=True)
    lastname = models.CharField(max_length=16, null=True, blank=True)
    role = models.CharField(max_length=16, null=True, blank=True)

    class Meta:
        app_label = 'account'

    def __str__(self):
        return self.user.username

    def __init__():
        print("Initiated User Profile")`

settings.py

import os
import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType, GroupOfUniqueNamesType
import logging
AUTH_PROFILE_MODULE = 'account.UserProfile'
AUTH_LDAP_SERVER_URI = 'myURl'

AUTH_LDAP_BIND_DN = ''
AUTH_LDAP_BIND_PASSWORD = ''
AUTH_LDAP_USER_SEARCH = LDAPSearch('ou=People,dc=cse,dc=iitb,dc=ac,dc=in',
ldap.SCOPE_SUBTREE,
'(uid=%(user)s)')


AUTH_LDAP_USER_ATTR_MAP = {
    'first_name': 'givenName',
    'last_name': 'sn',
    'email': 'mail',
}

AUTH_LDAP_PROFILE_ATTR_MAP = {
     'userid': 'uid',
     'firstname': 'givenName',
     'lastname': 'sn',
     'role' : 'employeeNumber',
}

AUTH_LDAP_ALWAYS_UPDATE_USER = True

AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=People,dc=cse,dc=iitb,dc=ac,dc=in",ldap.SCOPE_SUBTREE,"(objectClass=groupOfNames)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_MIRROR_GROUPS =  True


....

logger = logging.getLogger('django_auth_ldap')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)

记录器的控制台输出

search_s('ou=People,dc=cse,dc=iitb,dc=ac,dc=in', 2, '(uid=%(user)s)') returned 1 objects: uid=csehem,ou=pg17,ou=pg,ou=students,ou=people,dc=cse,dc=iitb,dc=ac,dc=in
Creating Django user csehem
Populating Django user csehem
search_s('ou=People,dc=cse,dc=iitb,dc=ac,dc=in', 2, '(&(objectClass=groupOfNames)(member=uid=csehem,ou=pg17,ou=pg,ou=students,ou=people,dc=cse,dc=iitb,dc=ac,dc=in))') returned 0 objects:

怎么了?

任何人都可以告诉我,为什么我不能填充个人资料模型,以及有什么方法可以做到?谢谢 另外,组没有镜像,我希望所有组都同步到django。这是怎么做的?

0 个答案:

没有答案