• Remember Mailing List

problems logging into plone

from Daniel Sarosi on Feb 27, 2007 08:25 PM
I tried to setup membrane users following the borg example.

The following tests run without any errors:



"""Integration tests for users.
"""

import unittest
from Testing.ZopeTestCase import ZopeDocTestSuite

from base import UNInterfaceTestCase
from utils import optionflags

def test_creation():
    """Test that users can be created and initiated.
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> user = self.portal.user
    
    Set a password and verify it can not be read back
    
    >>> user.setPassword('secret')
    >>> user.getPassword()
    Traceback (most recent call last):
    ...
    AttributeError: getPassword

    Set roles.
    
    >>> user.setRoles(('Donor',))
    >>> user.getRoles()
    ('Donor',)
    """
    
def test_iuser():
    """Test that user can adapt the iuser interface.
    
    >>> from Products.uninterface.interfaces import IUser
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> user = self.portal.user
    
    >>> iuser = IUser(user)
    
    >>> iuser.id
    'user'
    
    Attributes are verified
    
    >>> iuser.setFullname('Ben Tillman')
    >>> iuser.getFullname()
    'Ben Tillman'
    
    >>> iuser.setEmail('user@...')
    >>> iuser.getEmail()
    'user@...'
    """
    
def test_user_is_user():
    """Verify that that user acts as a plone user.
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> self.portal.portal_membership.getMemberById('user')
    <MemberData at .../user used for ...>
    """

def test_iuserrelated():
    """Test the functionality of the IUserRelated adapter.
    
    >>> from Products.membrane.interfaces import IUserRelated
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> user = self.portal.user
    
    Adapt to IUserRelated
    
    >>> u = IUserRelated(user)
    
    The user id is obtained from the content object's id (global
uniqueness is
    enforced).
    
    >>> u.getUserId()
    'user'
    """

def test_iuserauthprovider():
    """Test the functionality of the IUserAuthentication adapter.
    
    >>> from Products.membrane.interfaces import IUserAuthentication
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> user = self.portal.user
    
    Adapt to IUserAuthentication
    
    >>> u = IUserAuthentication(user)
    
    The user name is the same as the user id, and is obtained from the
content 
    object's id (global uniqueness is enforced).
    
    >>> u.getUserName()
    'user'
    
    Credentials are verified against the user name and the password.
    
    >>> user.setPassword('secret')
    >>> u.verifyCredentials({})
    False
    >>> u.verifyCredentials({'login' : '',      'password' : ''})
    False
    >>> u.verifyCredentials({'login' : 'user',   'password' : ''})
    False
    >>> u.verifyCredentials({'login' : '',      'password' : 'secret'})
    False
    >>> u.verifyCredentials({'login' : 'wrong', 'password' :
'incorrect'})
    False
    >>> u.verifyCredentials({'login' : 'user',   'password' :
'incorrect'})
    False
    >>> u.verifyCredentials({'login' : 'wrong', 'password' : 'secret'})
    False
    >>> u.verifyCredentials({'login' : 'user',   'password' : 'secret'})
    True
    """
    
def test_getMemberById():
    """Verify that getMemberById works.
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> user = self.portal.user
    
    >>> from Products.CMFCore.utils import getToolByName
    >>> membership = getToolByName(self.portal, 'portal_membership')
    >>> membership.getMemberById('user')
    <MemberData at .../portal_memberdata/user used for .../acl_users>
    """
    
def test_ownership():
    """Verify that users are given ownership over their own objects when
    created. 
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> user = self.portal.user
    
    Simulate Archetypes' setting of fields, re-indexing and calling the 
    post-create script.
    
    >>> user.setTitle('User One')
    >>> user.reindexObject()
    >>> user.at_post_create_script()
    
    >>> user.getOwnerTuple()[1]
    'user'
    """

def test_login():
    """Test the user can log in
    
    >>> self.setRoles(('Manager',))
    >>> id = self.portal.invokeFactory('User', 'user')
    >>> user = self.portal.user
    
    >>> self.logout()
    >>> self.login('user')
    
    >>> from Products.CMFCore.utils import getToolByName
    >>> membership = getToolByName(self.portal, 'portal_membership')
    >>> membership.getAuthenticatedMember()
    <MemberData at .../portal_memberdata/user used for .../acl_users>
    """

After that I created a User by adding a it inside the Plone interface.
However, when I try to login using the Plone web interface,
authentication does not succeed and I'm being returned to the login
screen.

The following adapter test was unsuccessful and I wonder if that had
anything to do with it.


 >>> from Products.uninterface.interfaces import IUser
    
    Create a content object to work from
    
    >>> self.setRoles(('Manager'),)
    >>> self.portal.invokeFactory('User', 'user')
    'user'
    >>> user = self.portal.user
    
    IUser contains semantic information about a user
    
    >>> IUser(user)    
    <Products.uninterface.content.user.User object at ...>

The output is:

Failed example:
    IUser(user)    
Expected:
    <Products.uninterface.content.user.User object at ...>
Got:
    <User at /plone/user>

Hope anyone can help.

Daniel

Return to date view: threaded or flat