Plone 4 - 获取经过身份验证的用户类型
Plone 4 - get type of authenticated user
我有在网站上注册的用户和使用外部帐户登录的用户(已使用plone.app.ldap)。
如何获取登录用户的类型?
membership = getToolByName(self.context, 'portal_membership')
authenticated_user = membership.getAuthenticatedMember()
(Pdb) authenticated_user
<MemberData at /mywebsite/portal_memberdata/myuserid used for /mywebsite/acl_users>
我有登录用户,但不知道如何找到它是如何注册的。
(好像membership_tool.listMembers()
给了我注册用户列表。也许我可以用这个...)
我的目标是将帐户类型作为自定义事件中的自定义维度发送到 Google Analytics,并创建一些不错的报告(帐户类型将作为结果的过滤器)。
PAS 服务的目标正是您的问题:-)
它被称为可插入的身份验证服务。这意味着您可以注册多项服务,并且 PAS 为您提供了一个单一的入口点来执行操作和查询。
这意味着您通常不必关心用户是 plone 用户还是 ldap 用户。
据我所知,唯一可能的方法是直接询问 ldap 插件:
ldap:你的 AD/LDAP 插件的 ID
plone:你的 plone 站点
>>> membership = getToolByName(plone, 'portal_membership')
>>> authenticated_user = membership.getAuthenticatedMember()
>>> search = plone.acl_users.ldap.acl_users.searchUsers
<bound method LDAPUserFolder.searchUsers of <LDAPUserFolder at /fd/acl_users/ldap/acl_users>>
>>> search(uid=authenticated_user.getId())
[{'dn': 'cn=Test USER,ou=Users, ...', 'uid': 'test.user', 'sn': 'Test', 'mail': 't.user@email.com', 'givenName': 'USER', 'cn': 'Test User'}]
搜索结果取决于您的 ad/ldap 配置。
我有在网站上注册的用户和使用外部帐户登录的用户(已使用plone.app.ldap)。
如何获取登录用户的类型?
membership = getToolByName(self.context, 'portal_membership')
authenticated_user = membership.getAuthenticatedMember()
(Pdb) authenticated_user
<MemberData at /mywebsite/portal_memberdata/myuserid used for /mywebsite/acl_users>
我有登录用户,但不知道如何找到它是如何注册的。
(好像membership_tool.listMembers()
给了我注册用户列表。也许我可以用这个...)
我的目标是将帐户类型作为自定义事件中的自定义维度发送到 Google Analytics,并创建一些不错的报告(帐户类型将作为结果的过滤器)。
PAS 服务的目标正是您的问题:-)
它被称为可插入的身份验证服务。这意味着您可以注册多项服务,并且 PAS 为您提供了一个单一的入口点来执行操作和查询。 这意味着您通常不必关心用户是 plone 用户还是 ldap 用户。
据我所知,唯一可能的方法是直接询问 ldap 插件:
ldap:你的 AD/LDAP 插件的 ID
plone:你的 plone 站点
>>> membership = getToolByName(plone, 'portal_membership')
>>> authenticated_user = membership.getAuthenticatedMember()
>>> search = plone.acl_users.ldap.acl_users.searchUsers
<bound method LDAPUserFolder.searchUsers of <LDAPUserFolder at /fd/acl_users/ldap/acl_users>>
>>> search(uid=authenticated_user.getId())
[{'dn': 'cn=Test USER,ou=Users, ...', 'uid': 'test.user', 'sn': 'Test', 'mail': 't.user@email.com', 'givenName': 'USER', 'cn': 'Test User'}]
搜索结果取决于您的 ad/ldap 配置。