} else { $k[$rev_temp_list[$j + 1]][$value] = $k[$value]; } $j++; } } } //Constructing the Roledetails array $role_det = getAllRoleDetails(); $query = "select * from vtiger_role"; $result = $adb->pquery($query, array()); $num_rows = $adb->num_rows($result); $mask_roleid = array(); $del_roleid = vtlib_purify($_REQUEST['maskid']); if ($del_roleid != '' && strlen($del_roleid) > 0) { $mask_roleid = getRoleAndSubordinatesRoleIds($del_roleid); } $roleout = ''; $roleout .= indent($hrarray, $roleout, $role_det, $mask_roleid); /** recursive function to construct the role tree ui * @param $hrarray -- Hierarchial role tree array with only the roleid:: Type array * @param $roleout -- html string ouput of the constucted role tree ui:: Type varchar * @param $role_det -- Roledetails array got from calling getAllRoleDetails():: Type array * @param $mask_roleid -- role id to be masked from selecting in the tree:: Type integer * @returns $role_out -- html string ouput of the constucted role tree ui:: Type string * */ function indent($hrarray, $roleout, $role_det, $mask_roleid = '') { global $theme, $app_strings, $default_charset; $theme_path = "themes/" . $theme . "/";
/** Gives an array which contains the information for what all roles, groups and user data is to be shared with the spcified user for the specified module * @param $module -- module name:: Type varchar * @param $userid -- user id:: Type integer * @param $def_org_share -- default organization sharing permission array:: Type array * @param $current_user_roles -- roleid:: Type varchar * @param $parent_roles -- parent roles:: Type varchar * @param $current_user_groups -- user id:: Type integer * @returns $mod_share_permission -- array which contains the id of roles,group and users data shared with specifed user for the specified module */ function getUserModuleSharingObjects($module, $userid, $def_org_share, $current_user_roles, $parent_roles, $current_user_groups) { global $adb; $mod_tabid = getTabid($module); $mod_share_permission; $mod_share_read_permission = array(); $mod_share_write_permission = array(); $mod_share_read_permission['ROLE'] = array(); $mod_share_write_permission['ROLE'] = array(); $mod_share_read_permission['GROUP'] = array(); $mod_share_write_permission['GROUP'] = array(); $share_id_members = array(); $share_id_groupmembers = array(); //If Sharing of leads is Private if ($def_org_share[$mod_tabid] == 3 || $def_org_share[$mod_tabid] == 0) { $role_read_per = array(); $role_write_per = array(); $rs_read_per = array(); $rs_write_per = array(); $grp_read_per = array(); $grp_write_per = array(); //Retreiving from vtiger_role to vtiger_role $query = "select vtiger_datashare_role2role.* from vtiger_datashare_role2role inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_role2role.shareid where vtiger_datashare_module_rel.tabid=? and vtiger_datashare_role2role.to_roleid=?"; $result = $adb->pquery($query, array($mod_tabid, $current_user_roles)); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_roleid = $adb->query_result($result, $i, 'share_roleid'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_role_members = array(); $share_id_roles = array(); $share_id_roles[] = $share_roleid; $share_id_role_members['ROLE'] = $share_id_roles; $share_id_members[$shareid] = $share_id_role_members; $share_permission = $adb->query_result($result, $i, 'permission'); if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } if (!array_key_exists($share_roleid, $role_write_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_write_per[$share_roleid] = $share_role_users; } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } } //Retreiving from role to rs $parRoleList = array(); foreach ($parent_roles as $par_role_id) { array_push($parRoleList, $par_role_id); } array_push($parRoleList, $current_user_roles); $query = "select vtiger_datashare_role2rs.* from vtiger_datashare_role2rs inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_role2rs.shareid where vtiger_datashare_module_rel.tabid=? and vtiger_datashare_role2rs.to_roleandsubid in (" . generateQuestionMarks($parRoleList) . ")"; $result = $adb->pquery($query, array($mod_tabid, $parRoleList)); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_roleid = $adb->query_result($result, $i, 'share_roleid'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_role_members = array(); $share_id_roles = array(); $share_id_roles[] = $share_roleid; $share_id_role_members['ROLE'] = $share_id_roles; $share_id_members[$shareid] = $share_id_role_members; $share_permission = $adb->query_result($result, $i, 'permission'); if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } if (!array_key_exists($share_roleid, $role_write_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_write_per[$share_roleid] = $share_role_users; } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } } //Get roles from Role2Grp $grpIterator = false; $groupList = $current_user_groups; if (empty($groupList)) { $groupList = array(0); } if (!empty($groupList)) { $query = "select vtiger_datashare_role2group.* from vtiger_datashare_role2group inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_role2group.shareid where vtiger_datashare_module_rel.tabid=?"; $qparams = array($mod_tabid); if (count($groupList) > 0) { $query .= " and vtiger_datashare_role2group.to_groupid in (" . generateQuestionMarks($groupList) . ")"; array_push($qparams, $groupList); } $result = $adb->pquery($query, $qparams); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_roleid = $adb->query_result($result, $i, 'share_roleid'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_role_members = array(); $share_id_roles = array(); $share_id_roles[] = $share_roleid; $share_id_role_members['ROLE'] = $share_id_roles; $share_id_members[$shareid] = $share_id_role_members; $share_permission = $adb->query_result($result, $i, 'permission'); if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } if (!array_key_exists($share_roleid, $role_write_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_write_per[$share_roleid] = $share_role_users; } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } } } //Retreiving from rs to vtiger_role $query = "select vtiger_datashare_rs2role.* from vtiger_datashare_rs2role inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_rs2role.shareid where vtiger_datashare_module_rel.tabid=? and vtiger_datashare_rs2role.to_roleid=?"; $result = $adb->pquery($query, array($mod_tabid, $current_user_roles)); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_rsid = $adb->query_result($result, $i, 'share_roleandsubid'); $share_roleids = getRoleAndSubordinatesRoleIds($share_rsid); $share_permission = $adb->query_result($result, $i, 'permission'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_role_members = array(); $share_id_roles = array(); foreach ($share_roleids as $share_roleid) { $share_id_roles[] = $share_roleid; if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } if (!array_key_exists($share_roleid, $role_write_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_write_per[$share_roleid] = $share_role_users; } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } } $share_id_role_members['ROLE'] = $share_id_roles; $share_id_members[$shareid] = $share_id_role_members; } //Retreiving from rs to rs $parRoleList = array(); foreach ($parent_roles as $par_role_id) { array_push($parRoleList, $par_role_id); } array_push($parRoleList, $current_user_roles); $query = "select vtiger_datashare_rs2rs.* from vtiger_datashare_rs2rs inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_rs2rs.shareid where vtiger_datashare_module_rel.tabid=? and vtiger_datashare_rs2rs.to_roleandsubid in (" . generateQuestionMarks($parRoleList) . ")"; $result = $adb->pquery($query, array($mod_tabid, $parRoleList)); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_rsid = $adb->query_result($result, $i, 'share_roleandsubid'); $share_roleids = getRoleAndSubordinatesRoleIds($share_rsid); $share_permission = $adb->query_result($result, $i, 'permission'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_role_members = array(); $share_id_roles = array(); foreach ($share_roleids as $share_roleid) { $share_id_roles[] = $share_roleid; if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } if (!array_key_exists($share_roleid, $role_write_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_write_per[$share_roleid] = $share_role_users; } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } } $share_id_role_members['ROLE'] = $share_id_roles; $share_id_members[$shareid] = $share_id_role_members; } //Get roles from Rs2Grp $query = "select vtiger_datashare_rs2grp.* from vtiger_datashare_rs2grp inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_rs2grp.shareid where vtiger_datashare_module_rel.tabid=?"; $qparams = array($mod_tabid); if (count($groupList) > 0) { $query .= " and vtiger_datashare_rs2grp.to_groupid in (" . generateQuestionMarks($groupList) . ")"; array_push($qparams, $groupList); } $result = $adb->pquery($query, $qparams); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_rsid = $adb->query_result($result, $i, 'share_roleandsubid'); $share_roleids = getRoleAndSubordinatesRoleIds($share_rsid); $share_permission = $adb->query_result($result, $i, 'permission'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_role_members = array(); $share_id_roles = array(); foreach ($share_roleids as $share_roleid) { $share_id_roles[] = $share_roleid; if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } if (!array_key_exists($share_roleid, $role_write_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_write_per[$share_roleid] = $share_role_users; } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_roleid, $role_read_per)) { $share_role_users = getRoleUserIds($share_roleid); $role_read_per[$share_roleid] = $share_role_users; } } } $share_id_role_members['ROLE'] = $share_id_roles; $share_id_members[$shareid] = $share_id_role_members; } $mod_share_read_permission['ROLE'] = $role_read_per; $mod_share_write_permission['ROLE'] = $role_write_per; //Retreiving from the grp2role sharing $query = "select vtiger_datashare_grp2role.* from vtiger_datashare_grp2role inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_grp2role.shareid where vtiger_datashare_module_rel.tabid=? and vtiger_datashare_grp2role.to_roleid=?"; $result = $adb->pquery($query, array($mod_tabid, $current_user_roles)); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_grpid = $adb->query_result($result, $i, 'share_groupid'); $share_permission = $adb->query_result($result, $i, 'permission'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_grp_members = array(); $share_id_grps = array(); $share_id_grps[] = $share_grpid; if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_grpid, $grp_read_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $share_grp_subgroups = $focusGrpUsers->group_subgroups; $grp_read_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_read_per)) { $grp_read_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } if (!array_key_exists($share_grpid, $grp_write_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_write_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_write_per)) { $grp_write_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_grpid, $grp_read_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_read_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_read_per)) { $grp_read_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } $share_id_grp_members['GROUP'] = $share_id_grps; $share_id_members[$shareid] = $share_id_grp_members; } //Retreiving from the grp2rs sharing $query = "select vtiger_datashare_grp2rs.* from vtiger_datashare_grp2rs inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_grp2rs.shareid where vtiger_datashare_module_rel.tabid=? and vtiger_datashare_grp2rs.to_roleandsubid in (" . generateQuestionMarks($parRoleList) . ")"; $result = $adb->pquery($query, array($mod_tabid, $parRoleList)); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_grpid = $adb->query_result($result, $i, 'share_groupid'); $share_permission = $adb->query_result($result, $i, 'permission'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_grp_members = array(); $share_id_grps = array(); $share_id_grps[] = $share_grpid; if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_grpid, $grp_read_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_read_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_read_per)) { $grp_read_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } if (!array_key_exists($share_grpid, $grp_write_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_write_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_write_per)) { $grp_write_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_grpid, $grp_read_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_read_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_read_per)) { $grp_read_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } $share_id_grp_members['GROUP'] = $share_id_grps; $share_id_members[$shareid] = $share_id_grp_members; } //Retreiving from the grp2grp sharing $query = "select vtiger_datashare_grp2grp.* from vtiger_datashare_grp2grp inner join vtiger_datashare_module_rel on vtiger_datashare_module_rel.shareid=vtiger_datashare_grp2grp.shareid where vtiger_datashare_module_rel.tabid=?"; $qparams = array($mod_tabid); if (count($groupList) > 0) { $query .= " and vtiger_datashare_grp2grp.to_groupid in (" . generateQuestionMarks($groupList) . ")"; array_push($qparams, $groupList); } $result = $adb->pquery($query, $qparams); $num_rows = $adb->num_rows($result); for ($i = 0; $i < $num_rows; $i++) { $share_grpid = $adb->query_result($result, $i, 'share_groupid'); $share_permission = $adb->query_result($result, $i, 'permission'); $shareid = $adb->query_result($result, $i, 'shareid'); $share_id_grp_members = array(); $share_id_grps = array(); $share_id_grps[] = $share_grpid; if ($share_permission == 1) { if ($def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_grpid, $grp_read_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_read_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_read_per)) { $grp_read_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } if (!array_key_exists($share_grpid, $grp_write_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_write_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_write_per)) { $grp_write_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } elseif ($share_permission == 0 && $def_org_share[$mod_tabid] == 3) { if (!array_key_exists($share_grpid, $grp_read_per)) { $focusGrpUsers = new GetGroupUsers(); $focusGrpUsers->getAllUsersInGroup($share_grpid); $share_grp_users = $focusGrpUsers->group_users; $grp_read_per[$share_grpid] = $share_grp_users; foreach ($focusGrpUsers->group_subgroups as $subgrpid => $subgrpusers) { if (!array_key_exists($subgrpid, $grp_read_per)) { $grp_read_per[$subgrpid] = $subgrpusers; } if (!in_array($subgrpid, $share_id_grps)) { $share_id_grps[] = $subgrpid; } } } } $share_id_grp_members['GROUP'] = $share_id_grps; $share_id_members[$shareid] = $share_id_grp_members; } $mod_share_read_permission['GROUP'] = $grp_read_per; $mod_share_write_permission['GROUP'] = $grp_write_per; } $mod_share_permission['read'] = $mod_share_read_permission; $mod_share_permission['write'] = $mod_share_write_permission; $mod_share_permission['sharingrules'] = $share_id_members; return $mod_share_permission; }
public function CheckSharing($reports4youid) { // if this template belongs to current user $adb = PearDatabase::getInstance(); $sql = "SELECT owner, sharingtype FROM its4you_reports4you_settings WHERE reportid = ?"; $result = $adb->pquery($sql, array($reports4youid)); $row = $adb->fetchByAssoc($result); $owner = $row["owner"]; $sharingtype = $row["sharingtype"]; $result = false; if ($owner == $this->current_user->id || $this->current_user->is_admin == "on") { $result = true; } else { switch ($sharingtype) { //available for all case "public": $result = true; break; //available only for superordinate users of template owner, so we get list of all subordinate users of the current user and if template //owner is one of them then template is available for current user //available only for superordinate users of template owner, so we get list of all subordinate users of the current user and if template //owner is one of them then template is available for current user case "private": $subordinateUsers = $this->getSubRoleUserIds($this->current_user->roleid); if (!empty($subordinateUsers) && count($subordinateUsers) > 0) { $result = in_array($owner, $subordinateUsers); } else { $result = false; } break; //available only for those that are in share list //available only for those that are in share list case "share": $subordinateUsers = $this->getSubRoleUserIds($this->current_user->roleid); if (!empty($subordinateUsers) && count($subordinateUsers) > 0 && in_array($owner, $subordinateUsers)) { $result = true; } else { $member_array = $this->GetSharingMemberArray($reports4youid); if (isset($member_array["users"]) && in_array($this->current_user->id, $member_array["users"])) { $result = true; } elseif (isset($member_array["roles"]) && in_array($this->current_user->roleid, $member_array["roles"])) { $result = true; } else { if (isset($member_array["rs"])) { foreach ($member_array["rs"] as $roleid) { $roleAndsubordinateRoles = getRoleAndSubordinatesRoleIds($roleid); if (in_array($this->current_user->roleid, $roleAndsubordinateRoles)) { $result = true; break; } } } if ($result == false && isset($member_array["groups"])) { $current_user_groups = explode(",", fetchUserGroupids($this->current_user->id)); $res_array = array_intersect($member_array["groups"], $current_user_groups); if (!empty($res_array) && count($res_array) > 0) { $result = true; } else { $result = false; } } } } break; } } return $result; }