虽然is_current_user_admin()
显示当前用户是否是管理员,但我想知道是否有办法发现给定的User
对象是否适用于管理员(例如假设) User.is_admin()
功能)。
感谢您的阅读。
布赖恩
答案 0 :(得分:5)
不幸的是,User模型不包含有关用户是否为管理员的任何信息。
如果您的管理员列表不经常更改,那么您可以编写自己的is_admin()
函数,该函数会检查User.user_id()
值是否与您的某个管理员帐户相对应。例如:
ADMIN_USER_IDS = ['id1', 'id2', ...] # manually populated list
def is_admin(user):
return user.user_id() in ADMIN_USER_IDS
答案 1 :(得分:3)
这是可能的,但不是通过User对象,它似乎只在Java api中,而不是在python中。您需要使用UserService:
UserService userService = UserServiceFactory.getUserService();
boolean adminUser = userService.isUserAdmin();
答案 2 :(得分:1)
那是不可能的。
您可以围绕users.User创建一个包装类,并跟踪该用户是否是管理员,截至他/她上次登录时。(您无法确定是否给定用户当前为管理员,除非该用户当前是客户端。)
使用Google App Engine的管理员状态有些限制 - 例如,如果您想创建一个权限高于正常但不高于管理员的新用户组,该怎么办?最好不要将应用中的权限与管理控制台中的权限混淆。
答案 3 :(得分:-1)
对于python,我们可以使用app.yaml
来配置管理访问权限。见https://developers.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Requiring_login_or_administrator_status。