簡體   English   中英

Google AppEngine:設置用戶角色和權限

[英]Google AppEngine: Setting up user roles and permissions

我正在接受使用Google AppEngine和Python的Udacity的Web開發課程。

我想設置特定的用戶角色及其分配的權限。 例如,我可能有兩個用戶角色,Employer和SkilledPerson,並分配他們的權限,如下所示:

只有雇主可以創建工作實體。 只有SkilledPerson可以創建ResumeJobApplication實體。

我該怎么做呢?

如何定義這些用戶角色? 如何為特定角色分配一組權限? 如何允許用戶注冊為特定角色(雇主或熟練人員)?

我將創建一個user_profile表,該表存儲他們的Google用戶ID,以及is_employer和is_skilled_person的兩個布爾值字段,因為在您的站點上總有人會同時擔任這兩個角色。 (也許我是發布工作但也正在尋找工作的雇主)

如果您感覺到有多個角色,而一個用戶只能是一個角色,則將其設置為一個字符串字段,其中包含角色名稱,例如“雇主”,“管理員”,“求職者”等。

您必須自己管理user_profile。 您可以在user_profile中存儲所需的用戶ID,例如電子郵件地址或Google用戶ID。 在此實體中添加一個角色數組,您可以在其中存儲該用戶的所有角色,並使用裝飾器管理訪問。

例如,作為雇主的用戶將在其角色中具有“雇員”,並且您可以使用@isEmployer裝飾器來管理對作業創建處理程序的訪問。 使用此解決方案,您將來可以為用戶分配許多角色,例如“ ADMIN”。

制作模型

class Role(ndb.Model):
    name = ndb.StringProperty()

class UserRole(ndb.Model):
    user = ndb.UserProperty()
    roles = ndb.KeyProperty(kind=Role,repeated=True)

使裝飾器檢查角色的用戶

在創建工作之前

@check_user_in_role('Employees')
def create_job():
    do_some_thing()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM