True,
'index' => True,
);
var $bo;
var $template;
var $template_dir;
var $html;
var $theme;
final function __construct()
{
$this->bo = new bogroup_access();
}
function index(){
if (!$GLOBALS['phpgw']->acl->check('run',1,'admin'))
{
$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/admin/index.php'));
}
$GLOBALS['phpgw_info']['flags'] = array(
'currentapp' => 'calendar',
'nonavbar' => false,
'app_header' => lang('Grant Access by Group'),
'noheader' => false
);
$GLOBALS['phpgw']->common->phpgw_header();
$this->template_dir = 'calendar/templates/'.$GLOBALS['phpgw_info']['user']['preferences']['common']['template_set'];
$this->template = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
if (!is_object($GLOBALS['phpgw']->html)){
$GLOBALS['phpgw']->html = CreateObject('phpgwapi.html');
}
$this->html = &$GLOBALS['phpgw']->html;
$this->theme = $GLOBALS['phpgw_info']['theme'];
$_SESSION['phpgw_info']['server'] = $GLOBALS['phpgw_info']['server'];
$this->template->set_file(Array('main' => 'grant_group_access.tpl' ));
$this->template->set_block('main','list','list_t');
// if ExpressoMail 1.2 has been installed and enabled, show the plugin using AJAX.
if($GLOBALS['phpgw_info']['server']['cal_expressoMail']) {
$module_name = 'expressoMail'.(str_replace("1.","1_",$GLOBALS['phpgw_info']['server']['cal_expressoMail']));
if($GLOBALS['phpgw_info']['user']['apps'][$module_name]){
$ldap_manager = CreateObject('contactcenter.bo_ldap_manager');
$_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
$_SESSION['phpgw_info']['expressomail']['user']['owner'] = $GLOBALS['phpgw_info']['user']['account_id'];
$_SESSION['phpgw_info']['expressomail']['server'] = $GLOBALS['phpgw_info']['server'];
$_SESSION['phpgw_info']['expressomail']['ldap_server'] = $ldap_manager ? $ldap_manager->srcs[1] : null;
// Carrega todos scripts necessarios
$scripts = "".
" ".
"";
// Fim
$this->template->set_var('lang_Loading',lang("Loading"));
$this->template->set_var('lang_Searching', lang("Searching"));
$this->template->set_var('lang_Users', lang("Users"));
$this->template->set_var('lang_Groups', lang("Groups"));
$this->template->set_var('template_set', $this->template_dir);
$this->template->set_var('lang_Event_participants', lang("Event's participants"));
$this->template->set_var('lang_Add', lang("Add"));
$this->template->set_var('lang_Remove', lang("Remove"));
$this->template->set_var('lang_Organization', lang("Organization"));
$this->template->set_var('lang_Search_for', lang("Search for"));
$this->template->set_var('lang_Available_users_and_groups', lang("Available users and groups"));
$this->template->set_var('lang_User_to_grant_access', lang("User to grant access"));
$this->template->set_var('lang_Group_to_share_calendar', lang("Group to share calendar"));
$this->template->set_var('scripts',$scripts);
}
}
$this->template->set_var('tr_color',$this->theme['th_bg']);
$this->template->set_var('lang_granted_user',lang("Granted user"));
$this->template->set_var('lang_shared_group',lang("Shared group"));
$this->template->set_var('lang_rights',lang("Rights"));
$this->template->set_var('lang_read',lang("Read"));
$this->template->set_var('lang_add',lang("Add"));
$this->template->set_var('lang_edit',lang("Edit"));
$this->template->set_var('lang_delete',lang("Delete"));
$this->template->set_var('lang_private',lang("Private"));
$this->template->set_var('lang_access_type',lang("Permission"));
$this->template->set_var('lang_remove',lang("remove"));
$this->template->set_var('lang_confirm',lang("Do you confirm this action?"));
$this->template->set_var('lang_success',lang("The sharing was granted."));
$this->template->set_var('lang_exist',lang("This sharing already exist."));
$this->template->set_var('lang_nouser',lang("No user was selected"));
$this->template->set_var('lang_nogroup',lang("No group was selected"));
$this->template->set_var('lang_nopermissiontype',lang("No permission type was selected"));
$this->template->set_var('lang_typemoreletters',lang("Type more %1 letters.","X"));
$grants = $this->get_grants('calendar');
$i = 0;
$data = array();
if($grants) {
foreach($grants as $key => $acl) {
$GLOBALS['phpgw']->accounts->get_account_name($acl['userID'], &$lid, &$fuser, &$luser);
$GLOBALS['phpgw']->accounts->get_account_name($acl['groupID'], &$lid, &$groupname, &$lname);
$rights = $acl['rights'] & PHPGW_ACL_READ ? "L" : "";
$rights.= $acl['rights'] & PHPGW_ACL_ADD ? "A" : "";
$rights.= $acl['rights'] & PHPGW_ACL_EDIT ? "E" : "";
$rights.= $acl['rights'] & PHPGW_ACL_DELETE ? "R" : "";
$rights.= $acl['rights'] & PHPGW_ACL_PRIVATE ? "P" : "";
$data[$fuser." ".$luser.$i++] = array('granted_user' => $fuser." ".$luser,
'shared_group' => $groupname,
'access_type' => $rights,
'tr_color_header' => "#DCDCDC",
'select' => $key
);
}
ksort($data);
foreach($data as $key => $var){
$this->template->set_var($var);
$this->template->parse('list_t','list',$var);
}
}
$this->template->pfp('out', 'main');
}
private function get_grants($app){
return $this->bo->get_grants($app);
}
public function search_user($params){
return $this->bo->search_user($params);
}
public final function add_user($params) {
$rights = strstr($params['rights'],"L") ? 1 : 0;
$rights |= strstr($params['rights'],"A") ? 2 : 0;
$rights |= strstr($params['rights'],"E") ? 4 : 0;
$rights |= strstr($params['rights'],"R") ? 8 : 0;
$rights |= strstr($params['rights'],"P") ? 16 : 0;
$params["id"] .= ";".$rights;
return $this->bo->add_user($params);
}
public final function rem_user($params) {
return $this->bo->rem_user($params);
}
}
?>