1
我已經使用djangosaml2包成功實現了與SAML斷言的基線Django/pysaml2集成。用戶是根據成功的身份驗證動態創建的,這非常棒!現在我想給我的Django 1.6 "extended" user model注入一個自定義屬性的簡短列表。Django SAML自定義用戶屬性和保存信號
的djangosaml2文檔狀態(參見:https://pypi.python.org/pypi/djangosaml2#user-attributes)我應該使用所提供的Django的信號:
...對於這些情況djangosaml2提供了一個Django的信號,你可以 聽。爲了做到這一點,你可以將下面的代碼添加到您的 應用:
from djangosaml2.signals import pre_user_save
def custom_update_user(sender=user, attributes=attributes, user_modified=user_modified)
...
return True # I modified the user object
這裏是我的問題:
- 我在哪裏放置上面的信號代碼?
- 如果我的擴展用戶模型看起來像這樣,如何告訴我的擴展用戶模型設置員工ID?
models.py
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
employee_id = models.CharField(blank=True,max_length=150)
偉大的解決方案@Bula!如果擴展的用戶配置文件已經存在,我想注意到你的解決方案工作的很好,但是如果SAML_CREATE_UNKNOWN_USER爲True,那麼即使djangosaml2包會創建用戶,它也不會創建配置文件。我通過在我的項目中使用類似於這篇文章的post_save信號來解決這個問題(http://stackoverflow.com/questions/1910359/creating-a-extended-user-profile)。 –
感謝@DerekNutile,很高興這個解決方案對您有用。 – Bula