Google app engine GAE上的应用程序|限制的谷歌账户认证|列出的谷歌账户并非全部|

Google app engine GAE上的应用程序|限制的谷歌账户认证|列出的谷歌账户并非全部|,google-app-engine,Google App Engine,我对这个谷歌应用程序引擎很陌生。我每天都在学习。 我有一个关于谷歌应用程序引擎的论坛。 但我想要的是有私人或限制性的部分。 对于某些google帐户用户,某些功能应该被锁定,这些用户在某种访问控制列表中 我明白的话,我可以说,只有那些用户谁是在访问列表中可以看到论坛休息将重定向到“联系到管理员”页面 因为我是新来的,我想知道这是可能的。 如果是,我如何实现? 谢谢 Alok如果您使用的是内置的Users API,则可以将检查作为访问控制机制。管理员可以通过进行管理 如果您需要更细粒度的、特定于应

我对这个谷歌应用程序引擎很陌生。我每天都在学习。 我有一个关于谷歌应用程序引擎的论坛。 但我想要的是有私人或限制性的部分。 对于某些google帐户用户,某些功能应该被锁定,这些用户在某种访问控制列表中

我明白的话,我可以说,只有那些用户谁是在访问列表中可以看到论坛休息将重定向到“联系到管理员”页面

因为我是新来的,我想知道这是可能的。 如果是,我如何实现? 谢谢
Alok

如果您使用的是内置的Users API,则可以将检查作为访问控制机制。管理员可以通过进行管理


如果您需要更细粒度的、特定于应用程序的授权逻辑,通常您会在数据存储中创建一个用户模型,该模型引用内置的UserProperty,并保存一个角色列表或需要检查授权的任何其他内容。

如果您使用的是内置的Users API,则可以将检查作为访问控制机制。管理员可以通过进行管理


如果您需要更细粒度的、特定于应用程序的授权逻辑,通常您会在数据存储中创建一个用户模型,该模型引用内置的UserProperty,还包含一个角色列表或需要检查授权的任何其他内容。

为了跟进Drew的回答,我在我的应用程序中使用了类似的系统,因此,我的服务器代码类似于下面的类定义(为了清晰起见,这里进行了简化)

然后我有这样的代码来处理查询

    def checkUserRights(user):
        q = db.GqlQuery("SELECT * from myUser WHERE user = :1", user)
        u = q.get()
        if not u:
            # create a new 'public access' user if we haven't seen this person before
            u = myUser(user=user, rights="public")
        # always update the user record after the source is fetched (updates the lastaccess field)
        db.put( u )
        return u.rights

   rights = checkUser(users.get_current_user())
   if isPrivateArea and rights == "private":
      ....
这样,我为每个访问者创建一个用户,然后我有一个管理界面来更改所选用户的权限-例如,您可以决定不为每个访问者创建记录

def checkUserRights(user):
    q = db.GqlQuery("SELECT * from myUser WHERE user = :1", user)
    u = q.get()
    if not u:
        # grant default public rights to anyone...
        return "public"
    # always update the user record after the source is fetched (updates the lastaccess field)
    db.put( u )
    return u.rights

当然,这是在app.yaml指定“login:required”的页面上。

为了跟进Drew的回复,我在我的应用程序中使用了类似的系统,因此我的服务器代码类似于下面的类定义(为了清晰起见,这里进行了简化)

然后我有这样的代码来处理查询

    def checkUserRights(user):
        q = db.GqlQuery("SELECT * from myUser WHERE user = :1", user)
        u = q.get()
        if not u:
            # create a new 'public access' user if we haven't seen this person before
            u = myUser(user=user, rights="public")
        # always update the user record after the source is fetched (updates the lastaccess field)
        db.put( u )
        return u.rights

   rights = checkUser(users.get_current_user())
   if isPrivateArea and rights == "private":
      ....
这样,我为每个访问者创建一个用户,然后我有一个管理界面来更改所选用户的权限-例如,您可以决定不为每个访问者创建记录

def checkUserRights(user):
    q = db.GqlQuery("SELECT * from myUser WHERE user = :1", user)
    u = q.get()
    if not u:
        # grant default public rights to anyone...
        return "public"
    # always update the user record after the source is fetched (updates the lastaccess field)
    db.put( u )
    return u.rights

当然,这是在app.yaml指定“login:required”的页面上,如果您可以告诉我在哪里可以有更多关于数据存储的文档以及如何创建用户模式,如果您可以告诉我在哪里可以有更多关于数据存储的文档以及如何创建用户模式。