我爲Python使用Google Identity平臺,我有兩種類型的用戶 - 提供者和顧問。兩者都將在Google Apps域中擁有一個帳戶。Appengine用戶和管理員 - 根據用戶類型呈現模板元素
爲了分離我的應用程序的工作流程,我認爲
供應商應該是一個普通用戶
顧問應該是一個管理員用戶
管理員用戶在這裏討論: https://cloud.google.com/appengine/docs/standard/python/users/adminusers
我有一個基本的瞭解,is_current_user_admin()
提供了一個測試,如果當前用戶是類型管理員(因此在我的應用程序中的顧問)。
有件事情我想,以顯示不同,這取決於用戶類型特定頁面。
例如,我將如何顯示在下面的下拉菜單中選擇「插入評估」鏈接只給管理員,而不是給非管理員用戶:
<div class="btn-group pull-right">
<button type="button" class="btn btn-danger">Consult Actions</button>
<button type="button" class="btn btn-danger dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Edit Consult</a>
<a class="dropdown-item" href="#">Cancel Consult</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="/schedule/insert-assessment?key={{consult.key.urlsafe()}}">Insert Assessment</a>
</div>
</div>
編輯:定義admin變量。 ..?
def get(self):
consult_key = ndb.Key(urlsafe=self.request.get('key'))
consult = consult_key.get()
# assessment and consult have the same key ID
assessment = Assessments.get_by_id(consult_key.id())
template = JINJA_ENVIRONMENT.get_template('/templates/view-consult.html')
template_values = {
'consult': consult,
'assessment': assessment
'admin': user is not None and user.is_current_user_admin()
}
self.response.out.write(template.render(template_values))
很好...所以我應該在template_values字典中聲明'admin'變量傳遞給jinja模板?在編輯上面? – TimothyAURA
這是一個很好的地方。 –
這完美的工作戴夫,只是請注意,雖然你錯過了用戶s:即users.is_current_user_admin()。但很好的答案:) – TimothyAURA