. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ $REQUEST = (isset($_GET['request']))?$_GET['request']:$_POST['request']; switch ($REQUEST) { case 'newRole': $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'roles/roles_New', '', ''); G::RenderPage('publish', 'raw'); break; case 'saveNewRole': $newid = md5($_POST['code'].date("d-M-Y_H:i:s")); $aData['ROL_UID'] = $newid; //$aData['ROL_PARENT'] = $_POST['parent']; $aData['ROL_SYSTEM'] = '00000000000000000000000000000002'; $aData['ROL_CODE'] = trim($_POST['code']); $aData['ROL_NAME'] = $_POST['name']; $aData['ROL_CREATE_DATE'] = date("Y-M-d H:i:s"); $aData['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); $aData['ROL_STATUS'] = $_POST['status']; $oCriteria = $RBAC->createRole($aData); echo '{success: true}'; break; case 'editRole': $ROL_UID = $_GET['ROL_UID']; $aFields = $RBAC->loadById($ROL_UID); $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'roles/roles_Edit', '', $aFields); G::RenderPage('publish', 'raw'); break; case 'updateRole': $aData['ROL_UID'] = $_POST['rol_uid']; //$aData['ROL_PARENT'] = $_POST['parent']; $aData['ROL_CODE'] = trim($_POST['code']); $aData['ROL_NAME'] = $_POST['name']; $aData['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); $aData['ROL_STATUS'] = $_POST['status']; $oCriteria = $RBAC->updateRole($aData); echo '{success: true}'; break; case 'show': G::LoadClass('ArrayPeer'); $aRoles = $RBAC->getAllRoles(); $fields = Array( 'ROL_UID'=>'char', 'ROL_PARENT'=>'char', 'ROL_SYSTEM'=>'char', 'ROL_CREATE_DATE'=>'char', 'ROL_UPDATE_DATE'=>'char', 'ROL_STATUS'=>'char' ); $rows = array_merge(Array($fields), $aRoles); global $_DBArray; $_DBArray['virtual_roles'] = $rows; $oCriteria = new Criteria('dbarray'); $oCriteria->setDBArrayTable('virtual_roles'); $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('propeltable', 'paged-table', 'roles/roles_List', $oCriteria); G::RenderPage('publish', 'raw'); break; case 'deleteRole': $oCriteria = $RBAC->removeRole($_POST['ROL_UID']); break; case 'canDeleteRole': if($RBAC->numUsersWithRole($_POST['ROL_UID']) == 0){ echo 'true'; } else { echo 'false'; } break; case 'verifyNewRole': $response = ($RBAC->verifyNewRole($_POST['code']))?'true':'false'; print($response); break; case 'updateDataRole': require_once 'classes/model/om/BaseRoles.php'; require_once 'classes/model/Content.php'; $oCriteria = new Criteria('rbac'); $oCriteria->addSelectColumn(RolesPeer::ROL_UID); $oCriteria->addSelectColumn(RolesPeer::ROL_PARENT); $oCriteria->addSelectColumn(RolesPeer::ROL_SYSTEM); $oCriteria->addSelectColumn(RolesPeer::ROL_CODE); $oCriteria->addSelectColumn(RolesPeer::ROL_CREATE_DATE); $oCriteria->addSelectColumn(RolesPeer::ROL_UPDATE_DATE); $oCriteria->addSelectColumn(RolesPeer::ROL_STATUS); $oCriteria->add(RolesPeer::ROL_CODE, $_GET['code']); $result = RolesPeer::doSelectRS($oCriteria); $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); $result->next(); $row = $result->getRow(); $oCriteria1 = new Criteria('workflow'); $oCriteria1->add(ContentPeer::CON_CATEGORY, 'ROL_NAME'); $oCriteria1->add(ContentPeer::CON_ID, $row['ROL_UID']); $oCriteria1->add(ContentPeer::CON_LANG, SYS_LANG); $oDataset1 = ContentPeer::doSelectRS($oCriteria1); $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset1->next(); $aRow1 = $oDataset1->getRow(); $row['ROL_NAME'] = $aRow1['CON_VALUE']; $row['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); $RBAC->updateRole($row); //$response = ($RBAC->verifyNewRole($_GET['code']))?'true':'false'; break; case 'usersIntoRole': $_GET['ROL_UID'] = (isset($_GET['ROL_UID']))?$_GET['ROL_UID']:$_POST['ROL_UID']; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); G::RenderPage('publish', 'raw'); break; case 'deleteUserRole': $USR_UID = $_POST['USR_UID']; $ROL_UID = $_POST['ROL_UID']; $RBAC->deleteUserRole($ROL_UID, $USR_UID); $_GET['ROL_UID'] = $ROL_UID; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); G::RenderPage('publish', 'raw'); break; case 'showUsers': $ROL_UID = $_POST['ROL_UID']; $_GET['ROL_UID'] = $ROL_UID; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'roles/roles_AssignRole' ); G::RenderPage('publish', 'raw'); break; case 'showPermissions': $ROL_UID = $_POST['ROL_UID']; $_GET['ROL_UID'] = $ROL_UID; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'roles/roles_AssignPermissions' ); G::RenderPage('publish', 'raw'); break; case 'assignUserToRole': $ROL_UID = $_POST['ROL_UID']; $aUserIuds = explode(",",$_POST['aUsers']); foreach($aUserIuds as $key=>$val){ $sData['USR_UID'] = $val; $sData['ROL_UID'] = $ROL_UID; $RBAC->assignUserToRole($sData); } // $_GET['ROL_UID'] = $ROL_UID; // $G_PUBLISH = new Publisher; // $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); // G::RenderPage('publish', 'raw'); break; case 'assignPermissionToRole': $USR_UID = $_POST['PER_UID']; $ROL_UID = $_POST['ROL_UID']; $sData['PER_UID'] = $USR_UID; $sData['ROL_UID'] = $ROL_UID; $RBAC->assignPermissionRole($sData); // $_GET['ROL_UID'] = $ROL_UID; // $G_PUBLISH = new Publisher; // $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree' ); // G::RenderPage('publish', 'raw'); break; case 'viewPermitions': $_GET['ROL_UID'] = (isset($_GET['ROL_UID']))?$_GET['ROL_UID']:$_POST['ROL_UID']; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree' ); G::RenderPage('publish', 'raw'); break; case 'deletePermissionRole': $PER_UID = $_POST['PER_UID']; $ROL_UID = $_POST['ROL_UID']; $RBAC->deletePermissionRole($ROL_UID, $PER_UID); $_GET['ROL_UID'] = $ROL_UID; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree'); G::RenderPage('publish', 'raw'); break; case 'assignPermissionToRoleMultiple': $USR_UID = $_POST['PER_UID']; $ROL_UID = $_POST['ROL_UID']; $arrPer = explode(',',$USR_UID); foreach ($arrPer as $PER_UID){ unset($sData); $sData['PER_UID'] = $PER_UID; $sData['ROL_UID'] = $ROL_UID; $RBAC->assignPermissionRole($sData); } break; case 'deletePermissionToRoleMultiple': $USR_UID = $_POST['PER_UID']; $ROL_UID = $_POST['ROL_UID']; $arrPer = explode(',',$USR_UID); foreach ($arrPer as $PER_UID){ $RBAC->deletePermissionRole($ROL_UID, $PER_UID); } break; case 'deleteUserRoleMultiple': $USR_UID = $_POST['USR_UID']; $ROL_UID = $_POST['ROL_UID']; $arrUsers = explode(',',$USR_UID); foreach ($arrUsers as $aUID){ $RBAC->deleteUserRole($ROL_UID, $aUID); } break; case 'rolesList': require_once (PATH_RBAC . "model/RolesPeer.php"); require_once ("classes/model/Content.php"); G::LoadClass('configuration'); $co = new Configurations(); $config = $co->getConfiguration('rolesList', 'pageSize','',$_SESSION['USER_LOGGED']); $limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20; $start = isset($_POST['start']) ? $_POST['start'] : 0; $limit = isset($_POST['limit']) ? $_POST['limit'] : $limit_size; $filter = isset($_REQUEST['textFilter'])? $_REQUEST['textFilter'] : ''; global $RBAC; $Criterias = $RBAC->getAllRolesFilter($start,$limit,$filter); $rs = RolesPeer::DoSelectRs($Criterias['LIST']); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $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; } $oData = RolesPeer::doSelectRS($Criterias['COUNTER']); $oData->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oData->next(); $row = $oData->getRow(); $total_roles = $row['CNT']; echo '{roles: '.G::json_encode($aRows).', total_roles: '.$total_roles.'}'; break; case 'updatePageSize': G::LoadClass('configuration'); $c = new Configurations(); $arr['pageSize'] = $_REQUEST['size']; $arr['dateSave'] = date('Y-m-d H:i:s'); $config = Array(); $config[] = $arr; $c->aConfig = $config; $c->saveConfig('rolesList', 'pageSize','',$_SESSION['USER_LOGGED']); echo '{success: true}'; break; case 'checkRoleCode': $rol_code = $_POST['ROL_CODE']; $rol_uid = isset($_POST['ROL_UID'])? $_POST['ROL_UID']: ''; $oCriteria = new Criteria('rbac'); $oCriteria->addSelectColumn(RolesPeer::ROL_UID); $oCriteria->add(RolesPeer::ROL_CODE, $rol_code); if ($rol_uid !=''){ $oCriteria->add(RolesPeer::ROL_UID, $rol_uid, Criteria::NOT_EQUAL); } $oDataset = RolesPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); if ($oDataset->next()){ $response = 'false'; }else{ $response = 'true'; } echo '{success:'.$response.'}'; break; default: echo 'default'; }