Недавно начал работать с Django и вообще Python. Пытаюсь сейчас сделать небольшой портальчик для локальной сети с авторизацией по LDAP. Все бы хорошо, ести бы не одно НО. Хотелось бы сделать так, чтобы авторизированного пользователя портал приветствовал по имени, которое берется и Active Directory. Как это оттуда вытаскивать я научился, а вот записать это в базу MySQL портала, а конкретно в таблицу auth_user в поля first_name и last_name не получается. Делаю так:
from portal.news.models import CustomUser
...
def updape_user_info(self, username):
#import pdb; pdb.set_trace()
global ldap_client
LDAP_PATH = 'dc='
for c in settings.LDAP_DOMAIN:
if c=='.':
LDAP_PATH=LDAP_PATH+',dc='
else:
LDAP_PATH=LDAP_PATH+c
r = ldap_client.search_s(LDAP_PATH,ldap.SCOPE_SUBTREE,'(mailNickname='+username+'*)',['givenName','sn','mail'])
res = ldaphelper.get_search_results(r)
for record in res:
email = record.get_attr_values('mail')[0]
user=CustomUser.objects.get(email=email.lower())
user.first_name = unicode(record.get_attr_values('givenName')[0],'utf-8')
print user.first_name
user.last_name = unicode(record.get_attr_values('sn')[0],'utf-8')
print user.last_name
user.save()
Изменить эти поля я пытаюсь когда запись этого пользователя уже создана. Я даже вижу вывод print-ом на консоль user.first_name и user.last_name. А потом заглядываю в базу а там поля пустые.
Как их туда затолкать? Помогите пожалуйста. :/
Last edited 2009-07-08 12:00:47