public function chkPermission_Click($strFormId, $strControlId, $strParameter)
 {
     if (is_numeric($strParameter)) {
         $chkPermission = $this->Form->GetControl($strControlId);
         if ($chkPermission->Checked) {
             $objRolePermission = new NarroRolePermission();
             $objRolePermission->RoleId = $this->objRole->RoleId;
             $objRolePermission->PermissionId = $strParameter;
             try {
                 $objRolePermission->Save();
             } catch (QMySqliDatabaseException $objExc) {
                 if (strpos($objExc->getMessage(), 'Duplicate entry') === false) {
                     throw $objExc;
                 } else {
                     //
                 }
             }
         } else {
             $objRolePermission = NarroRolePermission::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::NarroRolePermission()->RoleId, $this->objRole->RoleId), QQ::Equal(QQN::NarroRolePermission()->PermissionId, $strParameter)));
             if ($objRolePermission instanceof NarroRolePermission) {
                 $objRolePermission->Delete();
             }
         }
     } else {
         $this->dtgPermission_Bind();
     }
 }
Esempio n. 2
0
 /**
  * Counts all associated NarroRolePermissionsAsPermission
  * @return int
  */
 public function CountNarroRolePermissionsAsPermission()
 {
     if (is_null($this->intPermissionId)) {
         return 0;
     }
     return NarroRolePermission::CountByPermissionId($this->intPermissionId);
 }
 /**
  * Default / simple DataBinder for this Meta DataGrid.  This can easily be overridden
  * by calling SetDataBinder() on this DataGrid with another DataBinder of your choice.
  *
  * If a paginator is set on this DataBinder, it will use it.  If not, then no pagination will be used.
  * It will also perform any sorting (if applicable).
  */
 public function MetaDataBinder()
 {
     $objConditions = $this->Conditions;
     if (null !== $this->conAdditionalConditions) {
         $objConditions = QQ::AndCondition($this->conAdditionalConditions, $objConditions);
     }
     // Setup the $objClauses Array
     $objClauses = array();
     if (null !== $this->clsAdditionalClauses) {
         $objClauses = $this->clsAdditionalClauses;
     }
     // Remember!  We need to first set the TotalItemCount, which will affect the calcuation of LimitClause below
     if ($this->Paginator) {
         $this->TotalItemCount = NarroRolePermission::QueryCount($objConditions);
     }
     // If a column is selected to be sorted, and if that column has a OrderByClause set on it, then let's add
     // the OrderByClause to the $objClauses array
     if ($objClause = $this->OrderByClause) {
         array_push($objClauses, $objClause);
     }
     // Add the LimitClause information, as well
     if ($objClause = $this->LimitClause) {
         array_push($objClauses, $objClause);
     }
     // Set the DataSource to be a Query result from NarroRolePermission, given the clauses above
     $this->DataSource = NarroRolePermission::QueryArray($objConditions, $objClauses);
 }
 /**
  * Static Helper Method to Create using PK arguments
  * You must pass in the PK arguments on an object to load, or leave it blank to create a new one.
  * If you want to load via QueryString or PathInfo, use the CreateFromQueryString or CreateFromPathInfo
  * static helper methods.  Finally, specify a CreateType to define whether or not we are only allowed to
  * edit, or if we are also allowed to create a new one, etc.
  *
  * @param mixed $objParentObject QForm or QPanel which will be using this NarroRolePermissionMetaControl
  * @param integer $intRolePermissionId primary key value
  * @param QMetaControlCreateType $intCreateType rules governing NarroRolePermission object creation - defaults to CreateOrEdit
  * @return NarroRolePermissionMetaControl
  */
 public static function Create($objParentObject, $intRolePermissionId = null, $intCreateType = QMetaControlCreateType::CreateOrEdit)
 {
     // Attempt to Load from PK Arguments
     if (strlen($intRolePermissionId)) {
         $objNarroRolePermission = NarroRolePermission::Load($intRolePermissionId);
         // NarroRolePermission was found -- return it!
         if ($objNarroRolePermission) {
             return new NarroRolePermissionMetaControl($objParentObject, $objNarroRolePermission);
         } else {
             if ($intCreateType != QMetaControlCreateType::CreateOnRecordNotFound) {
                 throw new QCallerException('Could not find a NarroRolePermission object with PK arguments: ' . $intRolePermissionId);
             }
         }
         // If EditOnly is specified, throw an exception
     } else {
         if ($intCreateType == QMetaControlCreateType::EditOnly) {
             throw new QCallerException('No PK arguments specified');
         }
     }
     // If we are here, then we need to create a new record
     return new NarroRolePermissionMetaControl($objParentObject, new NarroRolePermission());
 }
 public static function GetSoapArrayFromArray($objArray)
 {
     if (!$objArray) {
         return null;
     }
     $objArrayToReturn = array();
     foreach ($objArray as $objObject) {
         array_push($objArrayToReturn, NarroRolePermission::GetSoapObjectFromObject($objObject, true));
     }
     return unserialize(serialize($objArrayToReturn));
 }
Esempio n. 6
0
 public static function LoadByUserId($intUserId, $objOptionalClauses = null)
 {
     $objUser = NarroUser::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::NarroUser()->UserId, $intUserId)), QQ::ExpandAsArray(QQN::NarroUser()->NarroUserRoleAsUser));
     if (!$objUser instanceof NarroUser) {
         return false;
     }
     foreach ($objUser->_NarroUserRoleAsUserArray as $objRole) {
         /* @var $objRole NarroUserRole */
         $arrRolePermission = NarroRolePermission::LoadArrayByRoleId($objRole->RoleId, QQ::Expand(QQN::NarroRolePermission()->Permission));
         foreach ($arrRolePermission as $objRolePermission) {
             $objUser->arrPermissions[$objRolePermission->Permission->PermissionName . '-' . $objRole->LanguageId . '-' . $objRole->ProjectId] = $objRolePermission;
         }
     }
     if (isset($objUser->Preferences['Language'])) {
         $objLanguage = NarroLanguage::LoadByLanguageCode($objUser->Preferences['Language']);
         if ($objLanguage instanceof NarroLanguage) {
             $objUser->Language = $objLanguage;
         } elseif (QApplication::$TargetLanguage instanceof NarroLanguage) {
             $objUser->Language = QApplication::$TargetLanguage;
         }
     } elseif (QApplication::$TargetLanguage instanceof NarroLanguage) {
         $objUser->Language = QApplication::$TargetLanguage;
     }
     return $objUser;
 }