make acl called via sidebox menu of an app, to behave like a part of that app

This commit is contained in:
Ralf Becker 2005-11-08 11:40:35 +00:00
parent b8e75460a2
commit 5c3541a156
2 changed files with 51 additions and 10 deletions

View File

@ -44,6 +44,14 @@
{ {
$GLOBALS['egw']->translation->add_app($acl_app); $GLOBALS['egw']->translation->add_app($acl_app);
} }
// make acl called via sidebox menu of an app, to behave like a part of that app
$referer = $_POST['referer'];
if (!$referer)
{
list(,$referer) = explode($GLOBALS['egw_info']['server']['webserver_url'],$_SERVER['HTTP_REFERER']);
if (!$referer) $referer = '/preferences/index.php';
}
//echo '<p align="right">'."referer='$referer'</p>\n";
$GLOBALS['egw_info']['flags']['currentapp'] = $acl_app; $GLOBALS['egw_info']['flags']['currentapp'] = $acl_app;
@ -70,19 +78,16 @@
return; return;
} }
$owner_name = $GLOBALS['egw']->accounts->id2name($owner); // get owner name for title $owner_name = $GLOBALS['egw']->common->grab_owner_name($owner);
if($no_privat_grants = $GLOBALS['egw']->accounts->get_type($owner) == 'g') if($no_privat_grants = $GLOBALS['egw']->accounts->get_type($owner) != 'g')
{
$owner_name = lang('Group').' ('.$owner_name.')';
}
else // admin setting acl-rights is handled as group-rights => no private grants !!
{ {
// admin setting acl-rights is handled as with group-rights => no private grants !!
$no_privat_grants = $owner != $GLOBALS['egw_info']['user']['account_id']; $no_privat_grants = $owner != $GLOBALS['egw_info']['user']['account_id'];
} }
$this->acl =& CreateObject('phpgwapi.acl',(int)$owner); $this->acl =& CreateObject('phpgwapi.acl',(int)$owner);
$this->acl->read_repository(); $this->acl->read_repository();
if ($_POST['submit']) if ($_POST['save'] || $_POST['apply'])
{ {
$processed = $_POST['processed']; $processed = $_POST['processed'];
$to_remove = unserialize(urldecode($processed)); $to_remove = unserialize(urldecode($processed));
@ -139,13 +144,17 @@
} }
$this->acl->save_repository(); $this->acl->save_repository();
} }
if ($_POST['save'] || $_POST['cancel'])
{
$GLOBALS['egw']->redirect_link($referer);
}
$GLOBALS['egw_info']['flags']['app_header'] = lang('%1 - Preferences',$GLOBALS['egw_info']['apps'][$acl_app]['title']).' - '.lang('acl').': '.$owner_name; $GLOBALS['egw_info']['flags']['app_header'] = lang('%1 - Preferences',$GLOBALS['egw_info']['apps'][$acl_app]['title']).' - '.lang('acl').': '.$owner_name;
$GLOBALS['egw']->common->egw_header(); $GLOBALS['egw']->common->egw_header();
echo parse_navbar(); echo parse_navbar();
$this->template =& CreateObject('phpgwapi.Template',$GLOBALS['egw']->common->get_tpl_dir($acl_app)); $this->template =& CreateObject('phpgwapi.Template',$GLOBALS['egw']->common->get_tpl_dir($acl_app));
$templates = Array ( $templates = Array (
'preferences' => 'preference_acl.tpl', 'preferences' => '../../../preferences/templates/default/acl.tpl',
'row_colspan' => 'preference_colspan.tpl', 'row_colspan' => 'preference_colspan.tpl',
'acl_row' => 'preference_acl_row.tpl' 'acl_row' => 'preference_acl_row.tpl'
); );
@ -162,13 +171,16 @@
'query' => $query, 'query' => $query,
'owner' => $owner, 'owner' => $owner,
'acl_app' => $acl_app, 'acl_app' => $acl_app,
'referer' => $referer,
); );
$var = Array( $var = Array(
'errors' => '', 'errors' => '',
'title' => '<br>', 'title' => '<br>',
'action_url' => $GLOBALS['egw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app=' . $acl_app), 'action_url' => $GLOBALS['egw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app=' . $acl_app),
'bg_color' => $GLOBALS['egw_info']['theme']['th_bg'], 'bg_color' => $GLOBALS['egw_info']['theme']['th_bg'],
'submit_lang' => lang('Save'), 'lang_save' => lang('Save'),
'lang_apply' => lang('Apply'),
'lang_cancel' => lang('Cancel'),
'common_hidden_vars_form' => $GLOBALS['egw']->html->input_hidden($common_hidden_vars) 'common_hidden_vars_form' => $GLOBALS['egw']->html->input_hidden($common_hidden_vars)
); );
$this->template->set_var($var); $this->template->set_var($var);
@ -194,7 +206,7 @@
)); ));
$totalentries = $GLOBALS['egw']->accounts->total; $totalentries = $GLOBALS['egw']->accounts->total;
$memberships = (array) $GLOBALS['egw']->acl->get_location_list_for_id('phpgw_group', 1, $owner); $memberships = (array) $GLOBALS['egw']->accounts->membership($owner);
$header_type = ''; $header_type = '';
$processed = Array(); $processed = Array();
@ -226,6 +238,7 @@
'menuaction' => 'preferences.uiaclprefs.index', 'menuaction' => 'preferences.uiaclprefs.index',
'acl_app' => $acl_app, 'acl_app' => $acl_app,
'owner' => $owner, 'owner' => $owner,
'referer' => $referer,
); );
$var = Array( $var = Array(

View File

@ -0,0 +1,28 @@
{errors}
<table border="0" align="center" width="50%">
<tr>
{nml}
<td width="40%">
<div align="center">
<form method="POST" action="{action_url}">
{common_hidden_vars}
<input type="text" name="query" value="{search_value}">
<input type="submit" name="search" value="{search}">
</form>
</div>
</td>
{nmr}
</tr>
</table>
<form method="POST" action="{action_url}">
{common_hidden_vars_form}
<input type="hidden" name="processed" value="{processed}">
<table border="0" align="center" width="50%">
{row}
<tr><td colspan="3" nowrap>
<input type="submit" name="save" value="{lang_save}">
<input type="submit" name="apply" value="{lang_apply}">
<input type="submit" name="cancel" value="{lang_cancel}">
</td></tr>
</table>
</form>