![](/img/trans.png)
[英]discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions error for setting up roles
[英]Google AppEngine: Setting up user roles and permissions
我正在接受使用Google AppEngine和Python的Udacity的Web開發課程。
我想設置特定的用戶角色及其分配的權限。 例如,我可能有兩個用戶角色,Employer和SkilledPerson,並分配他們的權限,如下所示:
只有雇主可以創建工作實體。 只有SkilledPerson可以創建Resume和JobApplication實體。
我該怎么做呢?
如何定義這些用戶角色? 如何為特定角色分配一組權限? 如何允許用戶注冊為特定角色(雇主或熟練人員)?
我將創建一個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.