Thursday 17 April 2008 1:41:26 am
I'd like to know which is the best way to assign roles to users from php code. I've created a custom loginhandler, and depending on the password the user types on login, they should be assigned to a role or other. I think one way is to assign the user to a group which has the role needed, but this involves the publishing of a new version of the user object (is there another way?) Something like this (code from the ldap login handler):
if ( $defaultUserPlacement != $parentNodeID )
{
$newVersion =& $contentObject->createNewVersion();
$newVersion->assignToNode( $defaultUserPlacement, 1 );
$newVersion->removeAssignment( $parentNodeID );
$newVersionNr = $newVersion->attribute( 'version' );
include_once( 'lib/ezutils/classes/ezoperationhandler.php' );
$operationResult = eZOperationHandler::execute( 'content', 'publish', array( 'object_id' => $userID,
'version' => $newVersionNr ) );
}
But this doesn't seem to be working for me... maybe I misplaced a object id for a node id or something... does anyone know if this is the correct approach? Is there a way for assigning roles directly (without changing the user's group)? Many thanks. (BTW I'm using 3.6)
|