104 lines
3.1 KiB
PHP
104 lines
3.1 KiB
PHP
<?php
|
|
/*********************************************************************************
|
|
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
|
* ("License"); You may not use this file except in compliance with the License
|
|
* The Original Code is: vtiger CRM Open Source
|
|
* The Initial Developer of the Original Code is vtiger.
|
|
* Portions created by vtiger are Copyright (C) vtiger.
|
|
* All Rights Reserved.
|
|
*
|
|
********************************************************************************/
|
|
|
|
/** Class to retreive all the Parent Groups of the specified Group
|
|
*
|
|
*/
|
|
require_once('include/utils/UserInfoUtil.php');
|
|
require_once('include/utils/GetParentGroups.php');
|
|
|
|
class GetUserGroups {
|
|
|
|
var $user_groups=Array();
|
|
//var $userRole='';
|
|
|
|
/** to get all the parent vtiger_groups of the specified group
|
|
* @params $groupId --> Group Id :: Type Integer
|
|
* @returns updates the parent group in the varibale $parent_groups of the class
|
|
*/
|
|
function getAllUserGroups($userid)
|
|
{
|
|
global $adb,$log;
|
|
$log->debug("Entering getAllUserGroups(".$userid.") method...");
|
|
//Retreiving from the user2grouptable
|
|
$query="select * from vtiger_users2group where userid=?";
|
|
$result = $adb->pquery($query, array($userid));
|
|
$num_rows=$adb->num_rows($result);
|
|
for($i=0;$i<$num_rows;$i++)
|
|
{
|
|
$now_group_id=$adb->query_result($result,$i,'groupid');
|
|
if(! in_array($now_group_id,$this->user_groups))
|
|
{
|
|
$this->user_groups[]=$now_group_id;
|
|
|
|
}
|
|
}
|
|
|
|
//Setting the User Role
|
|
$userRole = fetchUserRole($userid);
|
|
//Retreiving from the vtiger_user2role
|
|
$query="select * from vtiger_group2role where roleid=?";
|
|
$result = $adb->pquery($query, array($userRole));
|
|
$num_rows=$adb->num_rows($result);
|
|
for($i=0;$i<$num_rows;$i++)
|
|
{
|
|
$now_group_id=$adb->query_result($result,$i,'groupid');
|
|
if(! in_array($now_group_id,$this->user_groups))
|
|
{
|
|
$this->user_groups[]=$now_group_id;
|
|
|
|
}
|
|
}
|
|
|
|
//Retreiving from the user2rs
|
|
$parentRoles=getParentRole($userRole);
|
|
$parentRolelist= array();
|
|
foreach($parentRoles as $par_rol_id)
|
|
{
|
|
array_push($parentRolelist, $par_rol_id);
|
|
}
|
|
array_push($parentRolelist, $userRole);
|
|
$query="select * from vtiger_group2rs where roleandsubid in (". generateQuestionMarks($parentRolelist) .")";
|
|
$result = $adb->pquery($query, array($parentRolelist));
|
|
$num_rows=$adb->num_rows($result);
|
|
for($i=0;$i<$num_rows;$i++)
|
|
{
|
|
$now_group_id=$adb->query_result($result,$i,'groupid');
|
|
|
|
if(! in_array($now_group_id,$this->user_groups))
|
|
{
|
|
$this->user_groups[]=$now_group_id;
|
|
}
|
|
}
|
|
foreach($this->user_groups as $grp_id)
|
|
{
|
|
$focus = new GetParentGroups();
|
|
$focus->getAllParentGroups($grp_id);
|
|
|
|
foreach($focus->parent_groups as $par_grp_id)
|
|
{
|
|
if(! in_array($par_grp_id,$this->user_groups))
|
|
{
|
|
$this->user_groups[]=$par_grp_id;
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
$log->debug("Exiting getAllUserGroups method...");
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
?>
|