[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |