<?php
$auth = Yii::app()->authManager;
$RoleName = $_GET['role']; // string(rolename)
$arrTypeMap = array("0"=>"Operation", "1"=>"Task", "2"=>"Role");
$arrOptGroups = array();
$arrSelected = array();
// get all authItems and push it to a optgroup depending on its type.
$authItems = $auth->getAuthItems();
array_multisort($authItems);
foreach($authItems as $authItem)
{
if($authItem->name != $RoleName)
$arrOptGroups[$arrTypeMap[$authItem->type]][$authItem->name]=$authItem->description;
}
// get all assigned authItems for the current role.
$childs = $auth->getItemChildren($RoleName);
foreach($childs as $child)
array_push($arrSelected, $child->name);
// and now we hand the obtained informations to a asmselectex instance
$this->widget('application.extensions.asmselectex.EasmSelectEx',array(
'name'=>'assignmentList',
'values'=>$arrOptGroups,
'selected'=>$arrSelected,
'attributes'=>array('title'=>"Select a Authorization Item to assign."),
'scriptOptions'=>"addItemTarget: 'bottom', animate: true, highlight: true,
sortable: false, removeLabel: 'revoke', highlightAddedLabel: 'Assigned: ',
highlightRemovedLabel: 'Revoked: '"
));
?>
Your result could look like this: http://ironic.tnzr.n…mselectex/demo/
The only thing, I´m missing is a way to get the “TypeMap” dynamiclly…
(but never searched through the docs… so maybe there is one)
greets ironic