django中判斷當前user具有是否有對模塊的增刪改查權(quán)限]

首先簡單了解一下user的一些屬性

User對象

User對象是認證系統(tǒng)的核心漩蟆。用戶對象通常用來代表網(wǎng)站的用戶,并支持例如訪問控制妓蛮、注冊用戶怠李、關(guān)聯(lián)創(chuàng)建者和內(nèi)容等。在Django認證框架中只有一個用戶類蛤克,例如超級用戶('superusers’)或('staff')用戶只不過是相同用戶對象設(shè)置了不同屬性而已捺癞。

缺省字段Fields

username

用戶名,必需字段。30個字符或更少构挤,可以包含 _, @, +, . 和 - 字符髓介。

first_name
可選。 30 characters or fewer.

last_name
可選筋现。 30 characters or fewer.

email
郵箱,可選唐础。 Email address.

password
密碼,必需箱歧。Django不是以明文存儲密碼的,而是存儲哈希值一膨。

groups
用戶組呀邢。Many-to-many relationship to Group

user_permissions
用戶權(quán)限。Many-to-many relationship to Permission

groups = models.ManyToManyField(Group, verbose_name=_('groups'),
    blank=True, help_text=_('The groups this user belongs to. A user will '
                            'get all permissions granted to each of '
                            'their groups.'),
    related_name="user_set", related_query_name="user")
user_permissions = models.ManyToManyField(Permission,
    verbose_name=_('user permissions'), blank=True,
    help_text=_('Specific permissions for this user.'),
    related_name="user_set", related_query_name="user")

is_staff
Boolean豹绪。決定用戶是否可以訪問admin管理界面价淌。默認False。

is_active
Boolean瞒津。 用戶是否活躍,默認True蝉衣。一般不刪除用戶,而是將用戶的is_active設(shè)為False巷蚪。

is_superuser
Boolean病毡。默認False。當設(shè)為True時钓辆,用戶獲得全部權(quán)限剪验。

def has_perm(self, perm, obj=None):
    """
    Returns True if the user has the specified permission. This method
    queries all available auth backends, but returns immediately if any
    backend returns True. Thus, a user who has permission from a single
    auth backend is assumed to have permission in general. If an object is
    provided, permissions for this specific object are checked.
    """
 
    # Active superusers have all permissions.
    if self.is_active and self.is_superuser:
        return True
 
    # Otherwise we need to check the backends.
    return _user_has_perm(self, perm, obj)

last_login

上一次的登錄時間肴焊,為datetime對象前联,默認為當時的時間。

`user.last_login ``=` `timezone.now()`

date_joined
用戶創(chuàng)建的時間

方法Methods

is_anonymous()

是否是匿名用戶娶眷。

is_authenticated()
用戶是否通過驗證似嗤,登陸。

get_full_name()
返回first_name plus the last_name, with a space in between.

get_short_name()
返回first_name.

set_password(raw_password)
設(shè)置密碼届宠。

check_password(raw_password)
驗證密碼烁落。

get_group_permissions(obj=None)
返回用戶組權(quán)限的集合。

get_all_permissions(obj=None)
返回用戶所有的權(quán)限集合豌注。

has_perm(perm, obj=None)
用戶是否具有某個權(quán)限伤塌。perm的格式是 "<app label>.<permission codename>". 如: user.has_perm('user.addentry') 返回的是True或者False

這里的codename 我也不知道從django哪里去找,只能打開mysql里的表轧铁,查詢出codename, 后面知道再補上

image.png

has_perms(perm_list, obj=None)
用戶是否具有權(quán)限列表中的每個權(quán)限每聪。

這里查過源碼,實在的方式其實是遍歷了perm_list然后每次使用 self.has_perm來進行判斷齿风,如果有一個為False那么全部為False

所以perm_list只需要將需要驗證的權(quán)限組織成一個列表就行药薯,如 perm_list = [ "<app label>.<permission codename>", "<app label>.<permission codename>"]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市救斑,隨后出現(xiàn)的幾起案子童本,更是在濱河造成了極大的恐慌,老刑警劉巖脸候,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件穷娱,死亡現(xiàn)場離奇詭異绑蔫,居然都是意外死亡,警方通過查閱死者的電腦和手機泵额,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門晾匠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梯刚,你說我怎么就攤上這事凉馆。” “怎么了亡资?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵澜共,是天一觀的道長。 經(jīng)常有香客問我锥腻,道長嗦董,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任瘦黑,我火速辦了婚禮京革,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘幸斥。我一直安慰自己匹摇,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布甲葬。 她就那樣靜靜地躺著廊勃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪经窖。 梳的紋絲不亂的頭發(fā)上坡垫,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音画侣,去河邊找鬼冰悠。 笑死,一個胖子當著我的面吹牛配乱,可吹牛的內(nèi)容都是我干的溉卓。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼宪卿,長吁一口氣:“原來是場噩夢啊……” “哼的诵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起佑钾,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤西疤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后休溶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體代赁,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡扰她,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芭碍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徒役。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窖壕,靈堂內(nèi)的尸體忽然破棺而出忧勿,到底是詐尸還是另有隱情,我是刑警寧澤瞻讽,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布鸳吸,位于F島的核電站,受9級特大地震影響速勇,放射性物質(zhì)發(fā)生泄漏晌砾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一烦磁、第九天 我趴在偏房一處隱蔽的房頂上張望养匈。 院中可真熱鬧,春花似錦都伪、人聲如沸呕乎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽楣嘁。三九已至磅轻,卻和暖如春珍逸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背聋溜。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工谆膳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撮躁。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓漱病,卻偏偏與公主長得像,于是被迫代替她去往敵國和親把曼。 傳聞我的和親對象是個殘疾皇子杨帽,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345