Esempio n. 1
0
 public function assing_permission_to_role($id_role, $id_permission)
 {
     $role_permission = new RolesPermissions();
     $role_permission->setIdRole($id_role);
     $role_permission->setIdPermission($id_permission);
     $role_permission->save();
 }
Esempio n. 2
0
 function create($aData)
 {
     try {
         $oCriteria = new Criteria('rbac');
         $oCriteria->add(RolesPermissionsPeer::ROL_UID, $aData['ROL_UID']);
         $oCriteria->add(RolesPermissionsPeer::PER_UID, $aData['PER_UID']);
         $oDataset = RolesPermissionsPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $aRow = $oDataset->getRow();
         if (is_array($aRow)) {
             return true;
         }
         $oRolesPermissions = new RolesPermissions();
         $oRolesPermissions->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         $iResult = $oRolesPermissions->save();
         return true;
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Esempio n. 3
0
 function deletePermissionRole($ROL_UID, $PER_UID)
 {
     $crit = new Criteria();
     $crit->add(RolesPermissionsPeer::ROL_UID, $ROL_UID);
     $crit->add(RolesPermissionsPeer::PER_UID, $PER_UID);
     RolesPermissionsPeer::doDelete($crit);
     $o = new RolesPermissions();
     $o->setPerUid($PER_UID);
     $permission = $o->getPermissionName($PER_UID);
     $role = $this->load($ROL_UID);
     G::auditLog("DeletePermissionToRole", "Delete Permission " . $permission . " (" . $PER_UID . ") from Role " . $role['ROL_NAME'] . " (" . $ROL_UID . ") ");
 }
Esempio n. 4
0
 function assignPermissionRole($sData)
 {
     $o = new RolesPermissions();
     $o->setPerUid($sData['PER_UID']);
     $o->setRolUid($sData['ROL_UID']);
     if (isset($sData['PER_NAME'])) {
         $o->setPermissionName($sData['PER_NAME']);
     }
     $o->save();
 }
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */
$ROL_UID = $_GET['rUID'];
$TYPE_DATA = $_GET["type"];
global $RBAC;
$filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : '';
//BUG 7554: erik/ hook for existents environments that have not PM_CANCELCASE
if ($RBAC->permissionsObj->loadByCode('PM_CANCELCASE') === false) {
    $RBAC->permissionsObj->create(array('PER_CODE' => 'PM_CANCELCASE', 'PER_CREATE_DATE' => date('Y-m-d H:i:s')));
}
if ($TYPE_DATA == 'list') {
    $oDataset = $RBAC->getRolePermissions($ROL_UID, $filter, 1);
}
if ($TYPE_DATA == 'show') {
    $oDataset = $RBAC->getAllPermissions($ROL_UID, $RBAC->sSystem, $filter, 1);
}
$rows = array();
$per = new RolesPermissions();
while ($oDataset->next()) {
    $row = $oDataset->getRow();
    $per->setPerUid($row['PER_UID']);
    $row['PER_NAME'] = $per->getPermissionName();
    $rows[] = $row;
}
echo '{permissions: ' . G::json_encode($rows) . '}';
Esempio n. 6
0
 function assignPermissionRole($sData)
 {
     $o = new RolesPermissions();
     $o->setPerUid($sData['PER_UID']);
     $o->setRolUid($sData['ROL_UID']);
     $o->save();
 }
Esempio n. 7
0
 /**
  * Get all Permissions of a Role
  *
  * @param string $roleUid         Unique id of Role
  * @param string $option          Option (PERMISSIONS, AVAILABLE-PERMISSIONS)
  * @param array  $arrayFilterData Data of the filters
  * @param string $sortField       Field name to sort
  * @param string $sortDir         Direction of sorting (ASC, DESC)
  * @param int    $start           Start
  * @param int    $limit           Limit
  *
  * return array Return an array with all Permissions of a Role
  */
 public function getPermissions($roleUid, $option, array $arrayFilterData = null, $sortField = null, $sortDir = null, $start = null, $limit = null)
 {
     try {
         $arrayPermission = array();
         //Verify data
         $process = new \ProcessMaker\BusinessModel\Process();
         $role = new \ProcessMaker\BusinessModel\Role();
         $role->throwExceptionIfNotExistsRole($roleUid, $this->arrayFieldNameForException["roleUid"]);
         $process->throwExceptionIfDataNotMetFieldDefinition(array("OPTION" => $option), array("OPTION" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array("PERMISSIONS", "AVAILABLE-PERMISSIONS"), "fieldNameAux" => "option")), array("option" => "\$option"), true);
         $process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), $this->arrayFieldNameForException);
         //Get data
         if (!is_null($limit) && $limit . "" == "0") {
             return $arrayPermission;
         }
         //Set variables
         $rolePermission = new \RolesPermissions();
         //SQL
         switch ($option) {
             case "PERMISSIONS":
                 //Criteria
                 $criteria = $this->getPermissionCriteria($roleUid);
                 break;
             case "AVAILABLE-PERMISSIONS":
                 //Get Uids
                 $arrayUid = array();
                 $criteria = $this->getPermissionCriteria($roleUid);
                 $rsCriteria = \PermissionsPeer::doSelectRS($criteria);
                 $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                 while ($rsCriteria->next()) {
                     $row = $rsCriteria->getRow();
                     $arrayUid[] = $row["PER_UID"];
                 }
                 //Criteria
                 $criteria = $this->getPermissionCriteria("", $arrayUid);
                 break;
         }
         if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") {
             $criteria->add(\PermissionsPeer::PER_CODE, "%" . $arrayFilterData["filter"] . "%", \Criteria::LIKE);
         }
         //SQL
         if (!is_null($sortField) && trim($sortField) != "") {
             $sortField = strtoupper($sortField);
             if (in_array($sortField, array("PER_UID", "PER_CODE"))) {
                 $sortField = \PermissionsPeer::TABLE_NAME . "." . $sortField;
             } else {
                 $sortField = \PermissionsPeer::PER_CODE;
             }
         } else {
             $sortField = \PermissionsPeer::PER_CODE;
         }
         if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") {
             $criteria->addDescendingOrderByColumn($sortField);
         } else {
             $criteria->addAscendingOrderByColumn($sortField);
         }
         if (!is_null($start)) {
             $criteria->setOffset((int) $start);
         }
         if (!is_null($limit)) {
             $criteria->setLimit((int) $limit);
         }
         $rsCriteria = \PermissionsPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             $rolePermission->setPerUid($row["PER_UID"]);
             $row["PER_NAME"] = $rolePermission->getPermissionName();
             $arrayPermission[] = $this->getPermissionDataFromRecord($row);
         }
         //Return
         return $arrayPermission;
     } catch (\Exception $e) {
         throw $e;
     }
 }