BUG-9981: En el servidor de Telefonica, no se visualizan todos los... SOLVED

- No se realizaba la verificacion en la tabla PERMISSIONS de la base de datos RBAC al realizar upgrade.
- Se agrega la funcion verifyPermissions en la clase rbac.php la cual verifica los permisos, realizando los insert de los permisos que faltaran de acuerdo a la funcion loadPermissionAdmin, al realizar el upgrade.
This commit is contained in:
Marco Antonio Nina
2013-06-19 10:38:48 -04:00
parent a2b850f272
commit f0700eb36f
2 changed files with 55 additions and 1 deletions

View File

@@ -1170,5 +1170,44 @@ class RBAC
}
}
}
/**
* this function permissions
*
*
* @access public
*
*/
public function verifyPermissions ()
{
$message = array();
$listPermissions = $this->loadPermissionAdmin();
$criteria = new Criteria( 'rbac' );
$dataset = PermissionsPeer::doSelectRS( $criteria );
$dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$dataset->next();
$aRow = $dataset->getRow();
while (is_array( $aRow )) {
foreach($listPermissions as $key => $item) {
if ($aRow['PER_UID'] == $item['PER_UID'] ) {
unset($listPermissions[$key]);
break;
}
}
$dataset->next();
$aRow = $dataset->getRow();
}
foreach($listPermissions as $key => $item) {
$data['PER_UID'] = $item['PER_UID'];
$data['PER_CODE'] = $item['PER_CODE'];
$data['PER_CREATE_DATE'] = date('Y-m-d H:i:s');
$data['PER_UPDATE_DATE'] = $data['PER_CREATE_DATE'];
$data['PER_STATUS'] = 1;
$permission = new Permissions();
$permission->fromArray($data, BasePeer::TYPE_FIELDNAME);
$iResult = $permission->save();
$message[] = 'Add permission ' . $item['PER_CODE'];
}
return $message;
}
}

View File

@@ -8,6 +8,7 @@
G::LoadSystem('dbMaintenance');
G::LoadClass("cli");
G::LoadClass("multipleFilesBackup");
G::LoadSystem('rbac' );
/**
* class workspaceTools
@@ -89,7 +90,7 @@ class workspaceTools
$stop = microtime(true);
$final = $stop - $start;
CLI::logging("<*> Updating cache view Process took $final seconds.\n");
$start = microtime(true);
CLI::logging("> Updating cases directories structure...\n");
$this->upgradeCasesDirectoryStructure($workSpace);
@@ -460,6 +461,20 @@ class workspaceTools
//Update APP_DELEGATION.DEL_LAST_INDEX data
$res = $appCache->updateAppDelegationDelLastIndex($lang, $checkOnly);
CLI::logging("-> Update table RBAC Permissions... \n");
//Update table RBAC permissions
Bootstrap::LoadSystem( 'rbac' );
$RBAC = & RBAC::getSingleton();
$RBAC->initRBAC();
$resutl = $RBAC->verifyPermissions();
if (count($resutl) > 1) {
foreach($resutl as $item) {
CLI::logging(" $item... \n");
}
} else {
CLI::logging(" No Changes... \n");
}
CLI::logging("-> Creating triggers\n");
//now check if we have the triggers installed
$triggers = array();