2012-12-17 26 views
0

我想清理已交給我的Plone網站,但我不能從頭開始(我們不只是在那裏)。經理沒有權限管理用戶acl_users/source_users

我被要求更改幾個用戶的密碼,並且我發現自己被鎖定,即使使用ZMI用戶:當我在ZMI中單擊/ plone-site/acl_users/source_users時,出現Unauthorized錯誤!

所以,我認爲有兩種情況:

  • 一些插件,如LDAP(儘管沒有被使用),與我的用戶來源搞亂。
  • 有人搞砸了權限。

如何解決這個問題的任何想法? (目前我已指示用戶使用「忘記密碼」表格重新獲得訪問權限,但將來我可能需要訪問此對象用於其他目的。)

更新2013-01- 14

由於提問者@aclark,我提供了一個完整的回溯與verbose-security=on

Traceback (innermost last): 
    Module ZPublisher.Publish, line 127, in publish 
    Module ZPublisher.mapply, line 77, in mapply 
    Module ZPublisher.Publish, line 47, in call_object 
    Module Shared.DC.Scripts.Bindings, line 324, in __call__ 
    Module Shared.DC.Scripts.Bindings, line 361, in _bindAndExec 
    Module Products.PageTemplates.PageTemplateFile, line 130, in _exec 
    Module Products.PageTemplates.PageTemplate, line 80, in pt_render 
    Module zope.pagetemplate.pagetemplate, line 113, in pt_render 
    Module zope.tal.talinterpreter, line 271, in __call__ 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 533, in do_optTag_tal 
    Module zope.tal.talinterpreter, line 518, in do_optTag 
    Module zope.tal.talinterpreter, line 513, in no_tag 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 852, in do_condition 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 819, in do_loop_tal 
    Module zope.tales.tales, line 682, in setRepeat 
    Module zope.tales.tales, line 696, in evaluate 
    - URL: manage_users 
    - Line 31, Column 1 
    - Expression: <PathExpr standard:'here/listUserInfo'> 
    - Names: 
     {'container': <UserManager at /ca/acl_users/source_users>, 
     'context': <UserManager at /ca/acl_users/source_users>, 
     'default': <object object at 0x7f4c7f84aad0>, 
     'here': <UserManager at /ca/acl_users/source_users>, 
     'loop': {}, 
     'nothing': None, 
     'options': {'args':()}, 
     'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xbf67418>, 
     'request': <HTTPRequest, URL=http://intranet.lahavane.com/ca/acl_users/source_users/manage_users>, 
     'root': <Application at >, 
     'template': <PageTemplateFile at /ca/acl_users/source_users/manage_users>, 
     'user': <PropertiedUser 'admin'>} 
    Module zope.tales.expressions, line 217, in __call__ 
    Module Products.PageTemplates.Expressions, line 149, in _eval 
    Module zope.tales.expressions, line 124, in _eval 
    Module Products.PageTemplates.Expressions, line 76, in boboAwareZopeTraverse 
    Module OFS.Traversable, line 310, in restrictedTraverse 
    Module OFS.Traversable, line 245, in unrestrictedTraverse 
    - __traceback_info__: ([], 'listUserInfo') 
    Module AccessControl.ImplPython, line 729, in guarded_getattr 
    Module AccessControl.ImplPython, line 671, in aq_validate 
    Module AccessControl.ImplPython, line 565, in validate 
    Module AccessControl.ImplPython, line 463, in validate 
    Module AccessControl.ImplPython, line 810, in raiseVerbose 
Unauthorized: Your user account does not have the required permission. Access to 'listUserInfo' of (UserManager at /ca/acl_users/source_users) denied. Your user account, admin, exists at /acl_users. Access requires Manage_users_Permission, granted to the following roles: []. Your roles in this context are ['Authenticated', 'Manager', 'Owner']. 

最後一行是啓發之一:有沒有作用,誰可以做什麼,我試圖做。現在的問題是如何解決這個問題。另一個問題(我們可能不會回答)是如何發生的。

+0

當通過控制面板訪問用戶列表時,您是否有同樣的錯誤:/ plone-site/@@ usergroup-userprefs? –

+0

不,我沒有看到錯誤。 – manu

+0

1.)你可以通過Plone-UI更改密碼嗎? 2.)你是否嘗試使用緊急用戶,然後發生錯誤? (爲了排除某些惡意的特權給你的用戶)3.是否確定用戶管理是普通的Plone,沒有連接外部服務? –

回答

1

不要猜測。首先,從Site Setup -> Errors忽略例外列表中刪除Unauthorized

enter image description here

然後Save。接下來,確保verbose-securitybuildout.cfg文件如的實例部啓用:(設置此之後運行擴建)

[instance] 
    recipe = plone.recipe.zope2instance 
    verbose-security = on 

現在訪問/Plone的網站/ acl_users/source_users ,並返回Site Setup -> Errors查看實際錯誤。

+0

在發佈這個問題之前,我會這麼做的。這就是我知道管理員是被拒絕訪問的用戶。出現在http://twitpic.com/bn2wds – manu

+0

爲了得到這樣的問題的幫助,我們需要看到完整的回溯。您尚未向我們展示任何可幫助我們幫助您的東西。 – aclark

+0

我已更新問題以提供回溯。我沒有看到任何奇怪的東西;但你可能會看到我沒有的東西。你還需要什麼別的嗎?我試圖在控制檯上查看'* __ roles__'屬性;但也沒有任何幫助我。 – manu

1

我假設你正試圖用Zope-Application級別的用戶來管理plone用戶(用戶在zope級別上的/acl_users/users/manage_users上監聽 - 而不是在plone級別上的acl_users上)。 如果用戶某種程度上在plone級別上沒有Manager角色,則無法管理plone用戶。

可能的原因可能是:

  • 你的Zope級用戶不再Zope的級別(用戶應該/acl_users/roles/manage_rolesManager角色)「經理人」的角色。

  • 您有一個用戶在plone級別具有與zope級別用戶相同的ID,但沒有Manager角色。用戶將被列在/plone-site/acl_users/source_users之下 - 由於Unauthorized錯誤而無法檢查 - 或者由另一個PAS插件(如LDAP)檢查。在plone級別給予用戶Manager角色也可以解決問題,而不需要從plone級別的acl_users中刪除用戶。

我建議創建一個緊急用戶:

  • 去到終端服務器(如SSH)
  • 運行bin/instance adduser emergency secret(BIN /實例可以根據類型安裝不盡相同)
  • 您現在有一個名爲「emergency」和密碼「secret」的新用戶,在zope-leve l(/acl_users/users/manage_users)上註冊,Manager角色(acl_users/roles/manage_roles)。
  • 使用此用戶可以修復其他經理用戶,並在修復後刪除緊急用戶。

當在Zope的acl_users上註冊相同的用戶並在Plone的不同角色的acl_users上註冊時,您可能會得到一些奇怪的效果。根據當前的身份驗證方法(例如Zope級別基本身份驗證或Plone級別cookie身份驗證),您可能對同一用戶擁有不同的權限。

+0

我已經完成了你建議的任務,但沒有成功。 – manu