Adding Permission Name field.

This commit is contained in:
ralph
2013-04-11 09:51:39 -04:00
parent 7c17923471
commit bfd96495d9
8 changed files with 260 additions and 54 deletions

View File

@@ -55,7 +55,6 @@ class Roles extends BaseRoles {
* Function load
* access public
*/
public function load($Uid) {
try {
$oRow = RolesPeer::retrieveByPK($Uid);
@@ -141,7 +140,7 @@ class Roles extends BaseRoles {
$oCriteria2->add(RolesPeer::ROL_CREATE_DATE, '', Criteria::NOT_EQUAL);
$oCriteria2->add(RolesPeer::ROL_UPDATE_DATE, '', Criteria::NOT_EQUAL);
$oCriteria2->addJoin(RolesPeer::ROL_SYSTEM, SystemsPeer::SYS_UID);
if ($filter != ''){
if ($filter != '') {
$oCriteria2->add(RolesPeer::ROL_CODE, '%'.$filter.'%', Criteria::LIKE);
}
$result['COUNTER'] = $oCriteria2;
@@ -161,7 +160,7 @@ class Roles extends BaseRoles {
$oCriteria->add(RolesPeer::ROL_UPDATE_DATE, '', Criteria::NOT_EQUAL);
$oCriteria->addJoin(RolesPeer::ROL_SYSTEM, SystemsPeer::SYS_UID);
if ($filter != ''){
if ($filter != '') {
$oCriteria->add(RolesPeer::ROL_CODE, '%'.$filter.'%', Criteria::LIKE);
}
@@ -179,7 +178,7 @@ class Roles extends BaseRoles {
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$aRows = Array();
while($rs->next()){
while($rs->next()) {
$row = $rs->getRow();
$o = new Roles();
$o->load($row['ROL_UID']);
@@ -548,6 +547,7 @@ class Roles extends BaseRoles {
$oDataset = RolesPeer::doSelectRS($criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $oDataset;
} catch( exception $e ) {
@@ -607,6 +607,7 @@ class Roles extends BaseRoles {
$o = new RolesPermissions();
$o->setPerUid($sData['PER_UID']);
$o->setRolUid($sData['ROL_UID']);
$o->setPermissionName($sData['PER_NAME']);
$o->save();
}

View File

@@ -41,8 +41,21 @@ require_once 'classes/model/om/BaseRolesPermissions.php';
*
* @package rbac-classes-model
*/
class RolesPermissions extends BaseRolesPermissions {
function create($aData) {
class RolesPermissions extends BaseRolesPermissions
{
/**
* The value for the permission_name field.
* @var string
*/
protected $permission_name = '';
/**
*
* @param array $aData
* @return boolean
*/
function create($aData)
{
try {
$oCriteria = new Criteria('rbac');
$oCriteria->add(RolesPermissionsPeer::ROL_UID, $aData['ROL_UID']);
@@ -51,7 +64,10 @@ class RolesPermissions extends BaseRolesPermissions {
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
if (is_array($aRow)) return true;
if (is_array($aRow)) {
return true;
}
$this->permission_name = $aData['PER_NAME'];
$oRolesPermissions = new RolesPermissions();
$oRolesPermissions->fromArray($aData, BasePeer::TYPE_FIELDNAME);
@@ -62,4 +78,37 @@ class RolesPermissions extends BaseRolesPermissions {
throw($oError);
}
}
/**
* @return string
*/
public function getPermissionName()
{
if ($this->getPerUid() == '') {
throw (new Exception("Error in getPerName, the PER_UID can't be blank"));
}
$lang = defined('SYS_LANG') ? SYS_LANG : 'en';
$this->permission_name = Content::load('PER_NAME', '', $this->getPerUid(), $lang);
return $this->permission_name;
}
/**
*
* @param string $name
*/
public function setPermissionName($name)
{
if ($this->getPerUid() == '') {
throw (new Exception("Error in setPerTitle, the PER_UID can't be blank"));
}
if ($name !== null && ! is_string($name)) {
$name = (string)$name;
}
if ($this->permission_name !== $name || $name === '') {
$this->permission_name = $name;
$lang = defined('SYS_LANG') ? SYS_LANG : 'en';
$res = Content::addContent('PER_NAME', '', $this->getPerUid(), $lang, $this->permission_name);
}
}
} // RolesPermissions

View File

@@ -6,6 +6,27 @@ SELECT 'ROL_NAME','','00000000000000000000000000000002','en','System Administrat
SELECT 'ROL_NAME','','00000000000000000000000000000003','en','Operator' UNION ALL
SELECT 'ROL_NAME','','00000000000000000000000000000004','en','Manager';
INSERT INTO CONTENT (CON_CATEGORY,CON_PARENT,CON_ID,CON_LANG,CON_VALUE) VALUES
('PER_NAME','','00000000000000000000000000000001','en','Login'),
('PER_NAME','','00000000000000000000000000000002','en','Setup'),
('PER_NAME','','00000000000000000000000000000003','en','Users'),
('PER_NAME','','00000000000000000000000000000004','en','Factory'),
('PER_NAME','','00000000000000000000000000000005','en','Create cases'),
('PER_NAME','','00000000000000000000000000000006','en','All cases'),
('PER_NAME','','00000000000000000000000000000008','en','Reports'),
('PER_NAME','','00000000000000000000000000000007','en','Reassign case'),
('PER_NAME','','00000000000000000000000000000009','en','Supervisor'),
('PER_NAME','','00000000000000000000000000000010','en','Setup Advanced'),
('PER_NAME','','00000000000000000000000000000011','en','Dashboard'),
('PER_NAME','','00000000000000000000000000000012','en','WebDav'),
('PER_NAME','','00000000000000000000000000000013','en','Delete cases'),
('PER_NAME','','00000000000000000000000000000014','en','Edit Personal Info'),
('PER_NAME','','00000000000000000000000000000015','en','View Folders'),
('PER_NAME','','00000000000000000000000000000016','en','Add Folders'),
('PER_NAME','','00000000000000000000000000000017','en','Add file in folders'),
('PER_NAME','','00000000000000000000000000000018','en','Cancel cases'),
('PER_NAME','','00000000000000000000000000000019','en','Delete folders');
INSERT INTO [LANGUAGE] ([LAN_ID],[LAN_NAME],[LAN_NATIVE_NAME],[LAN_DIRECTION],[LAN_WEIGHT],[LAN_ENABLED],[LAN_CALENDAR])
SELECT 'aa','Afar','','L','0','0','GREGORIAN' UNION ALL
SELECT 'ab','Abkhazian','','L','1','0','GREGORIAN' UNION ALL

View File

@@ -6,6 +6,27 @@ INSERT INTO CONTENT (CON_CATEGORY,CON_PARENT,CON_ID,CON_LANG,CON_VALUE) VALUES
('ROL_NAME','','00000000000000000000000000000003','en','Operator'),
('ROL_NAME','','00000000000000000000000000000004','en','Manager');
INSERT INTO CONTENT (CON_CATEGORY,CON_PARENT,CON_ID,CON_LANG,CON_VALUE) VALUES
('PER_NAME','','00000000000000000000000000000001','en','Login'),
('PER_NAME','','00000000000000000000000000000002','en','Setup'),
('PER_NAME','','00000000000000000000000000000003','en','Users'),
('PER_NAME','','00000000000000000000000000000004','en','Factory'),
('PER_NAME','','00000000000000000000000000000005','en','Create cases'),
('PER_NAME','','00000000000000000000000000000006','en','All cases'),
('PER_NAME','','00000000000000000000000000000008','en','Reports'),
('PER_NAME','','00000000000000000000000000000007','en','Reassign case'),
('PER_NAME','','00000000000000000000000000000009','en','Supervisor'),
('PER_NAME','','00000000000000000000000000000010','en','Setup Advanced'),
('PER_NAME','','00000000000000000000000000000011','en','Dashboard'),
('PER_NAME','','00000000000000000000000000000012','en','WebDav'),
('PER_NAME','','00000000000000000000000000000013','en','Delete cases'),
('PER_NAME','','00000000000000000000000000000014','en','Edit Personal Info'),
('PER_NAME','','00000000000000000000000000000015','en','View Folders'),
('PER_NAME','','00000000000000000000000000000016','en','Add Folders'),
('PER_NAME','','00000000000000000000000000000017','en','Add file in folders'),
('PER_NAME','','00000000000000000000000000000018','en','Cancel cases'),
('PER_NAME','','00000000000000000000000000000019','en','Delete folders');
INSERT INTO LANGUAGE (LAN_ID,LAN_NAME,LAN_NATIVE_NAME,LAN_DIRECTION,LAN_WEIGHT,LAN_ENABLED,LAN_CALENDAR) VALUES
('aa','Afar','','L','0','0','GREGORIAN'),
('ab','Abkhazian','','L','1','0','GREGORIAN'),

View File

@@ -41,8 +41,13 @@ if ($TYPE_DATA == 'show')
$oDataset = $RBAC->getAllPermissions( $ROL_UID, $RBAC->sSystem, $filter, 1 );
$rows = Array ();
$per = new RolesPermissions();
while ($oDataset->next()) {
$rows[] = $oDataset->getRow();
$row = $oDataset->getRow();
$per->setPerUid($row['PER_UID']);
$row['PER_NAME'] = $per->getPermissionName();
$rows[] = $row;
}
echo '{permissions: ' . G::json_encode( $rows ) . '}';

View File

@@ -251,13 +251,20 @@ switch ($REQUEST) {
$content = new Content();
$rNames = $content->getAllContentsByRole();
$aUsers = $RBAC->getAllUsersByRole();
$aRows = Array ();
while ($rs->next()) {
$aRows[] = $rs->getRow();
$index = sizeof( $aRows ) - 1;
$aRows[$index]['ROL_NAME'] = isset( $rNames[$aRows[$index]['ROL_UID']] ) ? $rNames[$aRows[$index]['ROL_UID']] : '';
$aRows[$index]['TOTAL_USERS'] = isset( $aUsers[$aRows[$index]['ROL_UID']] ) ? $aUsers[$aRows[$index]['ROL_UID']] : 0;
$roleUid = $aRows[$index]['ROL_UID'];
if (!isset($rNames[$roleUid])) {
$rol = new Roles();
$row = $rol->load($roleUid);
$rolname = $row['ROL_NAME'];
} else {
$rolname = $rNames[$roleUid];
}
$aRows[$index]['ROL_NAME'] = $rolname;
$aRows[$index]['TOTAL_USERS'] = isset( $aUsers[$roleUid] ) ? $aUsers[$roleUid] : 0;
}
$oData = RolesPeer::doSelectRS( $Criterias['COUNTER'] );
@@ -297,6 +304,18 @@ switch ($REQUEST) {
}
echo '{success:' . $response . '}';
break;
case 'updatePermissionContent':
/*
$per_code = $_POST['PER_NAME'];
$per_uid = isset( $_POST['PER_UID'] ) ? $_POST['PER_UID'] : '';
require_once 'classes/model/Content.php';
$oCriteria = new Criteria( 'workflow' );
$oCriteria->add( ContentPeer::CON_CATEGORY, 'PER_NAME' );
$oCriteria->add( ContentPeer::CON_ID, $per_uid );
$oCriteria->add( ContentPeer::CON_VALUE, $per_code );
$oDataset = ContentPeer::doSelectRS( $oCriteria );
*/
break;
default:
echo 'default';
}

View File

@@ -52,6 +52,7 @@ var assignUAllButton;
var removeUButton;
var removeUAllButton;
var backButton;
var editForm;
var sw_func_permissions;
var sw_func_users;
@@ -69,6 +70,12 @@ Ext.onReady(function(){
handler: EditPermissionsAction
});
editPermissionsContentsButton = new Ext.Action({
text: _('ID_EDIT_PERMISSIONS_CONTENT'),
iconCls: 'button_menu_ext ss_sprite ss_key_add',
handler: EditPermissionsContentsAction
});
cancelEditPermissionsButton = new Ext.Action({
text: _('ID_CLOSE'),
iconCls: 'button_menu_ext ss_sprite ss_cancel',
@@ -102,6 +109,7 @@ Ext.onReady(function(){
fields : [
{name : 'PER_UID'},
{name : 'PER_CODE'},
{name : 'PER_NAME'},
{name : 'PER_CREATE_DATE'},
{name : 'PER_STATUS'}
]
@@ -117,6 +125,7 @@ Ext.onReady(function(){
fields : [
{name : 'PER_UID'},
{name : 'PER_CODE'},
{name : 'PER_NAME'},
{name : 'PER_CREATE_DATE'},
{name : 'PER_STATUS'}
]
@@ -130,7 +139,8 @@ Ext.onReady(function(){
},
columns: [
{id:'PER_UID', dataIndex: 'PER_UID', hidden:true, hideable:false},
{header: _('ID_PERMISSION_CODE'), dataIndex: 'PER_CODE', width: 60, align:'left'}
{header: _('ID_PERMISSION_CODE'), dataIndex: 'PER_CODE', width: 60, align:'left'},
{header: _('ID_PERMISSION_NAME'), dataIndex: 'PER_NAME', width: 60, align:'left'}
]
});
@@ -157,7 +167,7 @@ Ext.onReady(function(){
if (ROLES.ROL_UID == pm_admin) {
var permissionUid = assignedGrid.getSelectionModel().getSelections();
permissionUid = permissionUid[0].get('PER_UID');
for (var i=0; i<permissionsAdmin.length; i++)
for (var i=0; i < permissionsAdmin.length; i++)
{
if (permissionUid == permissionsAdmin[i]['PER_UID']) {
Ext.getCmp('removeButton').disable();
@@ -235,7 +245,7 @@ Ext.onReady(function(){
frame : false,
columnLines : false,
viewConfig : {forceFit:true},
tbar: [cancelEditPermissionsButton,{xtype: 'tbfill'},'-',searchTextA,clearTextButtonA],
tbar: [cancelEditPermissionsButton, {xtype: 'tbfill'},'-',searchTextA,clearTextButtonA],
//bbar: [{xtype: 'tbfill'}, assignAllButton],
listeners: {rowdblclick: AssignPermissionAction},
hidden: true
@@ -262,10 +272,14 @@ Ext.onReady(function(){
frame : false,
columnLines : false,
viewConfig : {forceFit:true},
tbar: [editPermissionsButton,{xtype: 'tbfill'},'-',searchTextP,clearTextButtonP],
tbar: [editPermissionsButton, /*editPermissionsContentsButton,*/ {xtype: 'tbfill'},'-',searchTextP,clearTextButtonP],
//bbar: [{xtype: 'tbfill'},removeAllButton],
listeners: {rowdblclick: function(){
(availableGrid.hidden)? DoNothing() :RemovePermissionAction();}}
(availableGrid.hidden)? DoNothing() :RemovePermissionAction();}},
view: new Ext.grid.GroupingView({
forceFit:true,
groupTextTpl: '{text}'
})
});
buttonsPanel = new Ext.Panel({
@@ -678,7 +692,7 @@ RemovePermissionAction = function(){
for(var a=0; a < rowsSelected.length; a++){
sw = true;
if (ROLES.ROL_UID == pm_admin) {
for (var i=0; i<permissionsAdmin.length; i++)
for (var i=0; i < permissionsAdmin.length; i++)
{
if (permissionsAdmin[i]['PER_UID'] == rowsSelected[a].get('PER_UID')) {
sw = false;
@@ -716,7 +730,7 @@ RemoveAllPermissionsAction = function(){
row = allRows.getAt(r);
sw = true;
if (ROLES.ROL_UID == pm_admin) {
for (var i=0; i<permissionsAdmin.length; i++)
for (var i=0; i < permissionsAdmin.length; i++)
{
if (permissionsAdmin[i]['PER_UID'] == row.data['PER_UID']) {
sw = false;
@@ -820,6 +834,74 @@ RemoveAllUsersAction = function(){
}
};
//update the content table, using php layer & update the Extjs table
updatePermissionContent = function() {
rowSelected = assignedGrid.getSelectionModel().getSelections();
permission_name = editForm.getForm().findField('name').getValue();
permission_name.trim();
if (permission_name != '') {
viewport.getEl().mask(_('ID_PROCESSING'));
Ext.Ajax.request({
url: 'roles_Ajax',
params: {request: 'updatePermissionContent', PER_NAME: permission_name, PER_UID: rowSelected[0].get('PER_UID')},
success: function(r,o) {
viewport.getEl().unmask();
},
failure: function(r,o) {
viewport.getEl().unmask();
}
});
}
Ext.getCmp('w').hide();
editPermissionsContentsButton.enable();
editPermissionsButton.enable();
};
//Close Popup Window
closeWindow = function(){
Ext.getCmp('w').hide();
editPermissionsContentsButton.enable();
editPermissionsButton.enable();
};
editForm = new Ext.FormPanel({
url: 'permissions_Ajax?request=updatePermission',
frame: true,
items:[
{xtype: 'textfield', name: 'per_uid', hidden: true },
{xtype: 'textfield', fieldLabel: _('ID_CODE'), name: 'code', width: 250, allowBlank: false, readOnly: true },
{xtype: 'textfield', fieldLabel: _('ID_NAME'), name: 'name', width: 200, allowBlank: false},
],
buttons: [
{text: _('ID_SAVE'), handler: updatePermissionContent},
{text: _('ID_CANCEL'), handler: closeWindow}
]
});
//Edit Selected Permission
EditPermissionsWindow = function(){
var permissionUid = assignedGrid.getSelectionModel().getSelections();
if (permissionUid.length > 0){
if (permissionUid[0].get('PER_UID') == '00000000000000000000000000000002'){
PMExt.warning(_('ID_PERMISSION'),_('ID_PERMISSION_MSG'));
}else{
editForm.getForm().findField('per_uid').setValue(permissionUid[0].get('PER_UID'));
editForm.getForm().findField('code').setValue(permissionUid[0].get('PER_CODE'));
editForm.getForm().findField('name').setValue(permissionUid[0].get('PER_NAME'));
w = new Ext.Window({
autoHeight: true,
id: 'w',
modal: true,
width: 420,
title: _('ID_EDIT_PERMISSION_TITLE'),
items: [editForm]
});
w.show();
}
}
};
//Function DoSearch Available
DoSearchA = function(){
availableGrid.store.load({params: {textFilter: searchTextA.getValue()}});
@@ -873,6 +955,14 @@ EditPermissionsAction = function(){
PermissionsPanel.doLayout();
};
EditPermissionsContentsAction = function(){
//availableGrid.show();
//buttonsPanel.show();
editPermissionsContentsButton.disable();
editPermissionsButton.disable();
EditPermissionsWindow();
};
//CancelEditPermissions Function
CancelEditPermissionsAction = function(){
availableGrid.hide();

View File

@@ -21,7 +21,7 @@ var main = function(){
Ext.state.Manager.setProvider(cookiep);
for(i=0; i<tabItems.length; i++){
for(i=0; i < tabItems.length; i++) {
items[i] = new Ext.tree.TreePanel({
title: tabItems[i].title,