00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 class Mage_Adminhtml_Block_Permissions_User_Edit_Tab_Roles extends Mage_Adminhtml_Block_Widget_Grid
00028 {
00029
00030 public function __construct()
00031 {
00032 parent::__construct();
00033 $this->setId('permissionsUserRolesGrid');
00034 $this->setDefaultSort('sort_order');
00035 $this->setDefaultDir('asc');
00036
00037 $this->setTitle(Mage::helper('adminhtml')->__('User Roles Information'));
00038 $this->setUseAjax(true);
00039 }
00040
00041 protected function _addColumnFilterToCollection($column)
00042 {
00043 if ($column->getId() == 'assigned_user_role') {
00044 $userRoles = $this->_getSelectedRoles();
00045 if (empty($userRoles)) {
00046 $userRoles = 0;
00047 }
00048 if ($column->getFilter()->getValue()) {
00049 $this->getCollection()->addFieldToFilter('role_id', array('in'=>$userRoles));
00050 }
00051 else {
00052 if($userRoles) {
00053 $this->getCollection()->addFieldToFilter('role_id', array('nin'=>$userRoles));
00054 }
00055 }
00056 }
00057 else {
00058 parent::_addColumnFilterToCollection($column);
00059 }
00060 return $this;
00061 }
00062
00063 protected function _prepareCollection()
00064 {
00065 $collection = Mage::getResourceModel('admin/role_collection');
00066 $collection->setRolesFilter();
00067 $this->setCollection($collection);
00068 return parent::_prepareCollection();
00069 }
00070
00071 protected function _prepareColumns()
00072 {
00073
00074 $this->addColumn('assigned_user_role', array(
00075 'header_css_class' => 'a-center',
00076 'header' => Mage::helper('adminhtml')->__('Assigned'),
00077 'type' => 'radio',
00078 'html_name' => 'roles[]',
00079 'values' => $this->_getSelectedRoles(),
00080 'align' => 'center',
00081 'index' => 'role_id'
00082 ));
00083
00084
00085
00086
00087
00088
00089
00090
00091 $this->addColumn('role_name', array(
00092 'header' =>Mage::helper('adminhtml')->__('Role Name'),
00093 'index' =>'role_name'
00094 ));
00095
00096 return parent::_prepareColumns();
00097 }
00098
00099 public function getGridUrl()
00100 {
00101 return $this->getUrl('*/*/rolesGrid', array('user_id' => Mage::registry('permissions_user')->getUserId()));
00102 }
00103
00104 protected function _getSelectedRoles($json=false)
00105 {
00106 if ( $this->getRequest()->getParam('user_roles') != "" ) {
00107 return $this->getRequest()->getParam('user_roles');
00108 }
00109 $uRoles = Mage::registry('permissions_user')->getRoles();
00110 if ($json) {
00111 $jsonRoles = Array();
00112 foreach($uRoles as $urid) $jsonRoles[$urid] = 0;
00113 return Zend_Json::encode((object)$jsonRoles);
00114 } else {
00115 return $uRoles;
00116 }
00117 }
00118
00119 }