[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/SharingAccess/models/ -> RuleMember.php (source)

   1  <?php
   2  /*+***********************************************************************************
   3   * The contents of this file are subject to the vtiger CRM Public License Version 1.0
   4   * ("License"); You may not use this file except in compliance with the License
   5   * The Original Code is:  vtiger CRM Open Source
   6   * The Initial Developer of the Original Code is vtiger.
   7   * Portions created by vtiger are Copyright (C) vtiger.
   8   * All Rights Reserved.
   9   *************************************************************************************/
  10  
  11  /**
  12   * Sharng Access Vtiger Module Model Class
  13   */
  14  class Settings_SharingAccess_RuleMember_Model extends Vtiger_Base_Model {
  15  
  16      const RULE_MEMBER_TYPE_GROUPS = 'Groups';
  17      const RULE_MEMBER_TYPE_ROLES = 'Roles';
  18      const RULE_MEMBER_TYPE_ROLE_AND_SUBORDINATES = 'RoleAndSubordinates';
  19  
  20      /**
  21       * Function to get the Qualified Id of the Group RuleMember
  22       * @return <Number> Id
  23       */
  24  	public function getId() {
  25          return $this->get('id');
  26      }
  27  
  28  	public function getIdComponents() {
  29          return explode(':', $$this->getId());
  30      }
  31  
  32  	public function getType() {
  33          $idComponents = $this->getIdComponents();
  34          if($idComponents && count($idComponents) > 0) {
  35              return $idComponents[0];
  36          }
  37          return false;
  38      }
  39  
  40  	public function getMemberId() {
  41          $idComponents = $this->getIdComponents();
  42          if($idComponents && count($idComponents) > 1) {
  43              return $idComponents[1];
  44          }
  45          return false;
  46      }
  47  
  48      /**
  49       * Function to get the Group Name
  50       * @return <String>
  51       */
  52  	public function getName() {
  53          return $this->get('name');
  54      }
  55  
  56      /**
  57       * Function to get the Group Name
  58       * @return <String>
  59       */
  60  	public function getQualifiedName() {
  61          return self::$ruleTypeLabel[$this->getType()].' - '.$this->get('name');
  62      }
  63  
  64  	public static function getIdComponentsFromQualifiedId($id) {
  65          return explode(':', $id);
  66      }
  67  
  68  	public static function getQualifiedId($type, $id) {
  69          return $type.':'.$id;
  70      }
  71  
  72  	public static function getInstance($qualifiedId) {
  73          $db = PearDatabase::getInstance();
  74  
  75          $idComponents = self::getIdComponentsFromQualifiedId($qualifiedId);
  76          $type = $idComponents[0];
  77          $memberId = $idComponents[1];
  78  
  79          if($type == self::RULE_MEMBER_TYPE_GROUPS) {
  80              $sql = 'SELECT * FROM vtiger_groups WHERE groupid = ?';
  81              $params = array($memberId);
  82              $result = $db->pquery($sql, $params);
  83  
  84              if($db->num_rows($result)) {
  85                  $row = $db->query_result_rowdata($result, 0);
  86                  $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_GROUPS, $row['groupid']);
  87                  $name = $row['groupname'];
  88                  $rule = new self();
  89                  return $rule->set('id', $qualifiedId)->set('name', $name);
  90              }
  91          }
  92  
  93          if($type == self::RULE_MEMBER_TYPE_ROLES) {
  94              $sql = 'SELECT * FROM vtiger_role WHERE roleid = ?';
  95              $params = array($memberId);
  96              $result = $db->pquery($sql, $params);
  97  
  98              if($db->num_rows($result)) {
  99                  $row = $db->query_result_rowdata($result, 0);
 100                  $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_ROLES, $row['roleid']);
 101                  $name = $row['rolename'];
 102                  $rule = new self();
 103                  return $rule->set('id', $qualifiedId)->set('name', $name);
 104              }
 105          }
 106  
 107          if($type == self::RULE_MEMBER_TYPE_ROLE_AND_SUBORDINATES) {
 108              $sql = 'SELECT * FROM vtiger_role WHERE roleid = ?';
 109              $params = array($memberId);
 110              $result = $db->pquery($sql, $params);
 111  
 112              if($db->num_rows($result)) {
 113                  $row = $db->query_result_rowdata($result, 0);
 114                  $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_ROLE_AND_SUBORDINATES, $row['roleid']);
 115                  $name = $row['rolename'];
 116                  $rule = new self();
 117                  return $rule->set('id', $qualifiedId)->set('name', $name);
 118              }
 119          }
 120  
 121          return false;
 122      }
 123  
 124      /**
 125       * Function to get all the rule members
 126       * @return <Array> - Array of Settings_SharingAccess_RuleMember_Model instances
 127       */
 128  	public static function getAll() {
 129          $rules = array();
 130  
 131          $allGroups = Settings_Groups_Record_Model::getAll();
 132          foreach($allGroups as $groupId => $groupModel) {
 133              $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_GROUPS, $groupId);
 134              $rule = new self();
 135              $rules[self::RULE_MEMBER_TYPE_GROUPS][$qualifiedId] = $rule->set('id', $qualifiedId)->set('name', $groupModel->getName());
 136          }
 137  
 138          $allRoles = Settings_Roles_Record_Model::getAll();
 139          foreach($allRoles as $roleId => $roleModel) {
 140              $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_ROLES, $roleId);
 141              $rule = new self();
 142              $rules[self::RULE_MEMBER_TYPE_ROLES][$qualifiedId] = $rule->set('id', $qualifiedId)->set('name', $roleModel->getName());
 143  
 144              $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_ROLE_AND_SUBORDINATES, $roleId);
 145              $rule = new self();
 146              $rules[self::RULE_MEMBER_TYPE_ROLE_AND_SUBORDINATES][$qualifiedId] = $rule->set('id', $qualifiedId)->set('name', $roleModel->getName());
 147          }
 148  
 149          return $rules;
 150      }
 151  
 152  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1