Пример #1
0
 function create($aData)
 {
     try {
         $sCode = $aData['PER_CODE'];
         $oCriteria = new Criteria('rbac');
         $oCriteria->add(PermissionsPeer::PER_CODE, $sCode);
         $oDataset = PermissionsPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $aRow = $oDataset->getRow();
         if (is_array($aRow)) {
             return 1;
         }
         $aData['PER_UID'] = G::generateUniqueID();
         $aData['PER_CODE'] = $aData['PER_CODE'];
         $aData['PER_CREATE_DATE'] = date('Y-m-d H:i:s');
         $aData['PER_UPDATE_DATE'] = $aData['PER_CREATE_DATE'];
         $aData['PER_STATUS'] = 1;
         $oPermission = new Permissions();
         $oPermission->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         $iResult = $oPermission->save();
         return $aData['PER_UID'];
     } catch (Exception $oError) {
         throw $oError;
     }
 }
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      Connection $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(self::DATABASE_NAME);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria();
         $criteria->add(PermissionsPeer::PER_UID, $pks, Criteria::IN);
         $objs = PermissionsPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
Пример #3
0
 /**
  * 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);
         $permission->save();
         $message[] = 'Add permission missing ' . $item['PER_CODE'];
     }
     return $message;
 }
Пример #4
0
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME,
  * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = PermissionsPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setPerUid($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setPerCode($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setPerCreateDate($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setPerUpdateDate($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setPerStatus($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setPerSystem($arr[$keys[5]]);
     }
 }
Пример #5
0
 function getAllPermissions($ROL_UID, $PER_SYSTEM = "", $filter = '', $status = null)
 {
     try {
         $c = new Criteria();
         $c->addSelectColumn(PermissionsPeer::PER_UID);
         $c->add(RolesPeer::ROL_UID, $ROL_UID);
         $c->addJoin(RolesPeer::ROL_UID, RolesPermissionsPeer::ROL_UID);
         $c->addJoin(RolesPermissionsPeer::PER_UID, PermissionsPeer::PER_UID);
         $result = PermissionsPeer::doSelectRS($c);
         $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $result->next();
         $a = array();
         while ($row = $result->getRow()) {
             $a[] = $row['PER_UID'];
             $result->next();
         }
         $criteria = new Criteria();
         $criteria->addSelectColumn(PermissionsPeer::PER_UID);
         $criteria->addSelectColumn(PermissionsPeer::PER_CODE);
         $criteria->addSelectColumn(PermissionsPeer::PER_CREATE_DATE);
         $criteria->addSelectColumn(PermissionsPeer::PER_UPDATE_DATE);
         $criteria->addSelectColumn(PermissionsPeer::PER_STATUS);
         $criteria->addSelectColumn(PermissionsPeer::PER_SYSTEM);
         $criteria->addSelectColumn(SystemsPeer::SYS_CODE);
         $criteria->add(PermissionsPeer::PER_UID, $a, Criteria::NOT_IN);
         if ($PER_SYSTEM != "") {
             $criteria->add(SystemsPeer::SYS_CODE, $PER_SYSTEM);
         }
         $criteria->addJoin(PermissionsPeer::PER_SYSTEM, SystemsPeer::SYS_UID);
         if ($filter != '') {
             $criteria->add(PermissionsPeer::PER_CODE, '%' . $filter . '%', Criteria::LIKE);
         }
         if (!is_null($status) && ($status == 1 || $status == 0)) {
             $criteria->add(PermissionsPeer::PER_STATUS, $status);
         }
         $oDataset = PermissionsPeer::doSelectRS($criteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         return $oDataset;
     } catch (exception $e) {
         throw $e;
     }
 }
Пример #6
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;
     }
 }
Пример #7
0
    /**
     * Verify if does not exist the Permission in table PERMISSIONS (Database RBAC)
     *
     * @param string $permissionUid         Unique id of Permission
     * @param string $fieldNameForException Field name for the exception
     *
     * return void Throw exception if does not exist the Permission in table PERMISSIONS
     */
    public function throwExceptionIfNotExistsPermission($permissionUid, $fieldNameForException)
    {
        try {
            $obj = \PermissionsPeer::retrieveByPK($permissionUid);

            if (is_null($obj)) {
                throw new \Exception(\G::LoadTranslation("ID_PERMISSION_DOES_NOT_EXIST", array($fieldNameForException, $permissionUid)));
            }
        } catch (\Exception $e) {
            throw $e;
        }
    }