True, 'edit_managers' => True ); function add_managers() { // Nao sendo Admin, sai if ($GLOBALS['phpgw']->acl->check('account_access',4,'admin')) { ExecMethod('admin.uiaccounts.list_users'); return false; } //Recebe valores do POST $manager = array( 'lid' => $_POST['manager_lid'], 'context' => $_POST['context'], 'add_users' => $_POST['add_users'], 'edit_users' => $_POST['edit_users'], 'delete_users' => $_POST['delete_users'], 'rename_users' => $_POST['rename_users'], 'add_groups' => $_POST['add_groups'], 'edit_groups' => $_POST['edit_groups'], 'delete_groups' => $_POST['delete_groups'], 'change_users_password' => $_POST['change_users_password'], 'change_users_quote' => $_POST['change_users_quote'], 'set_user_default_password' => $_POST['set_user_default_password'], 'edit_sambausers_attributes'=> $_POST['edit_sambausers_attributes'], 'add_email_lists' => $_POST['add_maillists'], 'edit_email_lists' => $_POST['edit_maillists'], 'delete_email_lists' => $_POST['delete_maillists'], 'create_sectors' => $_POST['create_sectors'], 'edit_sectors' => $_POST['edit_sectors'], 'delete_sectors' => $_POST['delete_sectors'], 'view_global_sessions' => $_POST['view_global_sessions'], 'view_logs' => $_POST['view_logs'], 'manage_wf_sectors' => $_POST['manage_wf_sectors'], 'create_computers' => $_POST['create_computers'], 'edit_computers' => $_POST['edit_computers'], 'delete_computers' => $_POST['delete_computers'], 'apps' => $_POST['applications_list'] ); // Soma os niveis de acesso criando uma ACL $acl = 0; $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users']; $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups']; $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; $acl = $acl + $manager['edit_sambausers_attributes']; $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['manage_wf_sectors'] + $manager['view_global_sessions']; $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; $acl = $acl + $manager['view_logs']; //Escrevre no Banco $sql = "INSERT INTO phpgw_expressoadmin (manager_lid, context, acl) " . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $acl . "')"; $GLOBALS['phpgw']->db->query($sql); //Escrevre no Banco as aplicações que o gerente tem direito de disponibilizar aos seus usuarios. foreach($manager['apps'] as $app=>$value) { $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) " . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')"; $GLOBALS['phpgw']->db->query($sql); } // Adiciona usuário na ACL do expressoadmin /* $accounts = CreateObject('phpgwapi.accounts'); $manager_id = $accounts->name2id($_POST['manager_lid']); $sql = "INSERT INTO phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values ('expressoadmin','run','" . $manager_id . "','1')"; $GLOBALS['phpgw']->db->query($sql); */ //Retorna ao list managers ExecMethod('expressoAdmin1_2.uimanagers.list_managers'); return True; } function edit_managers() { // Nao sendo Admin, sai if ($GLOBALS['phpgw']->acl->check('account_access',4,'admin')) { ExecMethod('expressoAdmin1_2.uiaccounts.list_users'); return False; } //recebe valores do POST $manager = array( 'old_lid' => $_POST['old_manager_lid'], 'old_context' => $_POST['old_context'], 'lid' => $_POST['manager_lid'], 'context' => $_POST['context'], 'add_users' => $_POST['add_users'], 'edit_users' => $_POST['edit_users'], 'delete_users' => $_POST['delete_users'], 'rename_users' => $_POST['rename_users'], 'add_groups' => $_POST['add_groups'], 'edit_groups' => $_POST['edit_groups'], 'delete_groups' => $_POST['delete_groups'], 'change_users_password' => $_POST['change_users_password'], 'change_users_quote' => $_POST['change_users_quote'], 'set_user_default_password' => $_POST['set_user_default_password'], 'edit_sambausers_attributes'=> $_POST['edit_sambausers_attributes'], 'add_email_lists' => $_POST['add_maillists'], 'edit_email_lists' => $_POST['edit_maillists'], 'delete_email_lists' => $_POST['delete_maillists'], 'create_sectors' => $_POST['create_sectors'], 'edit_sectors' => $_POST['edit_sectors'], 'delete_sectors' => $_POST['delete_sectors'], 'view_global_sessions' => $_POST['view_global_sessions'], 'view_logs' => $_POST['view_logs'], 'manage_wf_sectors' => $_POST['manage_wf_sectors'], 'create_computers' => $_POST['create_computers'], 'edit_computers' => $_POST['edit_computers'], 'delete_computers' => $_POST['delete_computers'], 'apps' => $_POST['applications_list'] ); // Soma os niveis de acesso criando uma ACL $acl = 0; $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users']; $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups']; $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; $acl = $acl + $manager['edit_sambausers_attributes']; $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['manage_wf_sectors'] + $manager['view_global_sessions']; $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; $acl = $acl + $manager['view_logs']; //Executa update na tabela $sql = "UPDATE phpgw_expressoadmin SET manager_lid = '".$manager['lid'] . "',context = '".$manager['context'] . "',acl = '".$acl . "' WHERE manager_lid = '".$manager['old_lid']."' AND context = '" . $manager['old_context'] ."'"; $GLOBALS['phpgw']->db->query($sql); //Deleta as aplicações e adiciona as novas. //Deleta $sql = "DELETE FROM phpgw_expressoadmin_apps WHERE " . "manager_lid = '".$manager['old_lid']."' AND " . "context = '".$manager['old_context']."'"; $GLOBALS['phpgw']->db->query($sql); // Adiciona if (count($manager['apps'])) { foreach($manager['apps'] as $app=>$value) { $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) " . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')"; $GLOBALS['phpgw']->db->query($sql); } } // Retorna ao list managers ExecMethod('expressoAdmin1_2.uimanagers.list_managers'); return True; } } ?>