function show_step1() { $usersgroupsList = new UsersGroupsList($_REQUEST); $usergroups = $usersgroupsList->search(); if (!is_array($usergroups)) { $usergroups = array(); popup_error(_("Failed to get User Group data")); } uasort($usergroups, "usergroup_cmp"); $searchDiv = $usersgroupsList->getForm(); $has_usergroups = count($usergroups) > 0; $usergroup_selected = false; if (!isset($_SESSION['wizard']['use_users'])) { $usergroup_selected = true; } elseif ($_SESSION['wizard']['use_users'] == 'usergroups') { $usergroup_selected = true; } $users = array(); $sizelimit_exceeded = false; $res = $_SESSION['service']->users_list_partial('', array('login')); // todo manage wsdl to be able to send no/void argument to this request if ($res !== null) { foreach ($res['data'] as $item_id => $item) { $user = new User($item); if (!$user->is_valid()) { continue; } $users[] = $user; } uasort($users, "user_cmp"); $sizelimit_exceeded = $res['partial']; } $applications = $_SESSION['service']->applications_list(); if (!count($users)) { popup_error(_('No available users')); } if (!count($applications)) { popup_error(_('No available applications')); } if ($sizelimit_exceeded) { popup_error(_('Unable to display the list of users: too many users')); $users = array(); } page_header(); echo '<div>'; echo '<h1><a href="wizard.php">' . _('Publication Wizard') . '</a> - ' . _('Select User Groups') . '</h1>'; echo '<form action="" method="post">'; echo '<input type="hidden" name="from" value="step1" />'; echo '<table class="" id="wizard_list_table" border="0" cellspacing="1" cellpadding="5">'; if ($has_usergroups) { echo '<tr class="title">'; echo '<th>'; if (userdb_is_writable() && count($users) > 0) { echo '<input class="input_radio" type="radio" name="use" value="users" onclick="$(\'wizard_usergroups_list_table\').hide(); $(\'wizard_users_list_table\').show()"'; if (!$usergroup_selected) { echo ' checked="checked"'; } echo '/>' . _('Create a new User Group'); } echo '</th>'; echo '<th><input class="input_radio" type="radio" name="use" value="usergroups" onclick="$(\'wizard_users_list_table\').hide(); $(\'wizard_usergroups_list_table\').show()"'; if ($usergroup_selected) { echo ' checked="checked"'; } echo '/> ' . _('Use existing User Groups') . '</th>'; echo '</tr>'; } else { echo '<input type="hidden" name="use" value="users" />'; } echo '<tr>'; echo '<td>'; if (userdb_is_writable()) { $count = 0; echo '<table class="main_sub"'; if ($has_usergroups) { if ($usergroup_selected) { echo ' style="display: none" '; } } echo 'id="wizard_users_list_table" border="0" cellspacing="1" cellpadding="5">'; foreach ($users as $user) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '">'; echo '<td colspan="2"><input class="input_checkbox" type="checkbox" name="users[]" value="' . $user->getAttribute('login') . '"'; if (isset($_SESSION['wizard']['users']) && in_array($user->getAttribute('login'), $_SESSION['wizard']['users'])) { echo ' checked="checked"'; } echo '/> <a href="users.php?action=manage&id=' . $user->getAttribute('login') . '">' . $user->getAttribute('displayname') . '</a></td>'; echo '</tr>'; } $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '"><td colspan="2"><a href="javascript:;" onclick="markAllRows(\'wizard_users_list_table\'); return false">' . _('Mark all') . '</a> / <a href="javascript:;" onclick="unMarkAllRows(\'wizard_users_list_table\'); return false">' . _('Unmark all') . '</a></td></tr>'; echo '</table>'; echo '</td>'; } echo '<td>'; if ($has_usergroups) { $count = 0; echo '<table class="main_sub"'; if (!$usergroup_selected) { echo ' style="display: none;" '; } echo 'id="wizard_usergroups_list_table" border="0" cellspacing="1" cellpadding="5">'; foreach ($usergroups as $usergroup) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '">'; echo '<td><input class="input_checkbox" type="checkbox" name="usergroups[]" value="' . $usergroup->id . '" /> <a href="usersgroup.php?action=manage&id=' . $usergroup->id . '">' . $usergroup->name . '</a></td>'; echo '</tr>'; } $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '"><td><a href="javascript:;" onclick="markAllRows(\'wizard_usergroups_list_table\'); return false">' . _('Mark all') . '</a> / <a href="javascript:;" onclick="unMarkAllRows(\'wizard_usergroups_list_table\'); return false">' . _('Unmark all') . '</a></td></tr>'; echo '</table>'; echo $searchDiv; } echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td style="text-align: right;" colspan="2">'; echo '<input type="submit" name="submit_next" value="' . _('Next') . '" />'; echo '</td>'; echo '</tr>'; echo '</table>'; echo '</form>'; echo '</div>'; page_footer(); die; }
function show_manage($sharedfolder_id_) { $sharedfolder = $group = $_SESSION['service']->shared_folder_info($sharedfolder_id_); if (is_null($sharedfolder)) { popup_error(sprintf(_("Failed to import shared folder '%s'"), $sharedfolder_id_)); redirect('sharedfolders.php'); } $server_displayname = $sharedfolder->server; $server = $_SESSION['service']->server_info($sharedfolder->server); if (!is_null($server)) { $server_displayname = $server->getDisplayName(); } $usersgroupsList = new UsersGroupsList($_REQUEST); $all_groups = $usersgroupsList->search(); if (!is_array($all_groups)) { $all_groups = array(); popup_error(_("Failed to get User Group data")); } uasort($all_groups, "usergroup_cmp"); $searchDiv = $usersgroupsList->getForm(); $available_groups = array(); $used_groups = array(); if ($sharedfolder->hasAttribute('groups')) { $used_groups = array(); $mods_by_group = array(); $groups2 = $sharedfolder->getAttribute('groups'); foreach ($groups2 as $mode => $groups3) { foreach ($groups3 as $group_id => $group_name) { $used_groups[$group_id] = $group_name; $mods_by_group[$group_id] = $mode; } } } foreach ($all_groups as $group) { if (array_key_exists($group->id, $used_groups) === false) { $available_groups[$group->id] = $group; } } $can_manage_sharedfolders = isAuthorized('manageSharedFolders'); page_header(); echo '<div id="sharedfolders_div">'; echo '<h1>' . $sharedfolder->name . '</h1>'; echo '<div>'; echo '<h2>' . _('Server') . '</h2>'; echo '<a href="servers.php?action=manage&id=' . $sharedfolder->server . '"> ' . $server_displayname . '</a>'; echo '</div>'; echo '<br />'; echo '<div>'; echo '<h2>' . _('Configuration') . '</h2>'; echo '<table>'; echo '<tr><td>'; echo _('Name') . ': '; echo '</td><td>'; if ($can_manage_sharedfolders) { echo '<form action="actions.php" method="post">'; echo '<input type="hidden" name="name" value="SharedFolder" />'; echo '<input type="hidden" name="action" value="rename" />'; echo '<input type="hidden" name="id" value="' . $sharedfolder->id . '" />'; } echo '<input type="text" name="sharedfolder_name" value="' . $sharedfolder->name . '" />'; if ($can_manage_sharedfolders) { echo ' <input type="submit" value="' . _('Rename') . '" />'; echo '</form>'; } echo '</td></tr>'; echo '</table>'; echo '</div>'; echo '<br />'; echo '<div>'; echo '<h2>' . _('Publications') . '</h2>'; echo '<table border="0" cellspacing="1" cellpadding="3">'; foreach ($used_groups as $group_id => $group_name) { echo '<tr>'; echo '<td><a href="usersgroup.php?action=manage&id=' . $group_id . '">' . $group_name . '</a></td>'; echo '<td>' . $mods_by_group[$group_id] . '</td>'; if ($can_manage_sharedfolders) { echo '<td><form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this shared folder access?') . '\');">'; echo '<input type="hidden" name="name" value="SharedFolder_ACL" />'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="sharedfolder_id" value="' . $sharedfolder->id . '" />'; echo '<input type="hidden" name="usergroup_id" value="' . $group_id . '" />'; echo '<input type="submit" value="' . _('Delete access to this shared folder') . '" />'; echo '</form></td>'; } echo '</tr>'; } if (count($available_groups) > 0 and $can_manage_sharedfolders) { echo '<tr><form action="actions.php" method="post"><td>'; echo '<input type="hidden" name="name" value="SharedFolder_ACL" />'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="sharedfolder_id" value="' . $sharedfolder->id . '" />'; echo '<select name="usergroup_id">'; foreach ($available_groups as $group) { echo '<option value="' . $group->id . '" >' . $group->name . '</option>'; } echo '</select>'; echo '</td><td>'; echo '<select name="mode">'; echo '<option value="rw" >' . _('Read-write') . '</option>'; echo '<option value="ro" >' . _('Read only') . '</option>'; echo '</select>'; echo '</td><td><input type="submit" value="' . _('Add access to this shared folder') . '" /></td>'; echo '</form></tr>'; } echo '</table>'; echo $searchDiv; echo '</div>'; echo '</div>'; page_footer(); }
function show_manage($script_id_) { $script = $_SESSION['service']->script_info($script_id_); if (!is_object($script)) { redirect('script.php'); } $can_manage_script = isAuthorized('manageNews'); page_header(); echo '<div id="script_div">'; echo '<h1><a href="?">' . _('Login Script management') . '</a> - ' . $script->name . '</h1>'; echo '<div>'; echo '<h2>' . _('Modify') . '</h2>'; echo '<table border="0" cellspacing="1" cellpadding="3">'; if ($can_manage_script) { $os_options = array("Windows", "Linux"); $type_options = array("bash", "python", "VBS", "batch", "powershell"); echo '<form action="script.php" method="post" enctype="multipart/form-data">'; echo '<input type="hidden" name="action" value="rename" />'; echo '<input type="hidden" name="id" value="' . $script->id . '" />'; echo '<tr><td><strong>' . _('Name:') . '</strong></td><td><input type="text" name="script_name" value="' . $script->name . '" /></td></tr>'; echo '<tr><td><strong>' . _('OS:') . '</strong></td><td><select name="script_os">'; foreach ($os_options as $os_option) { echo '<option value="' . $os_option . '" '; if ($os_option == $script->os) { echo 'selected="selected"'; } echo '/>' . $os_option . '</option>'; } echo '</select></td></tr>'; echo '<tr><td><strong>' . _('Type:') . '</strong></td><td><select name="script_type" onchange="changeScriptAreaSyntax(this, \'scriptArea\')">'; foreach ($type_options as $type_option) { echo '<option value="' . $type_option . '" '; if ($type_option == $script->type) { echo 'selected="selected"'; } echo '/>' . $type_option . '</option>'; } echo '</select></td></tr>'; echo '<tr><td></td><td><textarea name="script_data" id=\'scriptArea\' cols="100" rows="20">' . $script->data . '</textarea></td></tr>'; echo '<script language="javascript" type="text/javascript"> initScriptArea(\'scriptArea\') </script>'; echo '<tr><td colspan="2">'; echo '<input type="file" name="script_file" onchange="loadFileAsText(this,\'scriptArea\')"/><BR/>'; echo '<input type="submit" value="' . _('Modify') . '" /></td></tr>'; echo '</form>'; } echo '</table>'; echo '</div>'; // User groups part $groups_mine = $script->getAttribute('groups'); $groups_partial_list = $script->getAttribute('groups_partial_list'); $usersgroupsList = new UsersGroupsList($_REQUEST); if ($groups_partial_list) { if ($usersgroupsList->is_empty_filter()) { $usersgroupsList->set_external_result($groups_mine, true); } else { $groups_mine2 = $usersgroupsList->search($login); if (is_null($groups_mine)) { die_error(_('Error while requesting User Group data'), __FILE__, __LINE__); } $groups_mine = array(); foreach ($groups_mine2 as $group) { $groups_mine[$group->id] = $group->name; } } } // do not request other groups if we do not display the 'add to' panel ... $groups_all = $usersgroupsList->search(); usort($groups_all, "usergroup_cmp"); $searchDiv = $usersgroupsList->getForm(); $groups_available = array(); foreach ($groups_all as $group) { if (!array_key_exists($group->id, $groups_mine)) { $groups_available[] = $group; } } echo '<div>'; echo '<h2>' . _('User Groups with this user') . '</h2>'; echo $searchDiv; echo '<table border="0" cellspacing="1" cellpadding="3">'; foreach ($groups_mine as $group_id => $group_name) { echo '<tr><td>'; if ($can_manage_script) { echo '<a href="usersgroup.php?action=manage&id=' . $group_id . '">' . $group_name . '</a>'; } else { echo $group_name; } echo '</td>'; if ($can_manage_script) { echo '<td><form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this user from this group?') . '\');">'; echo '<input type="hidden" name="name" value="Script_UserGroup" />'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="group" value="' . $group_id . '" />'; echo '<input type="hidden" name="element" value="' . $script->id . '" />'; echo '<input type="submit" value="' . _('Delete from this group') . '" />'; echo '</form></td>'; } echo '</tr>'; } if (count($groups_available) > 0 and $can_manage_script) { echo '<tr><form action="actions.php" method="post"><td>'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="name" value="Script_UserGroup" />'; echo '<input type="hidden" name="element" value="' . $script->id . '" />'; echo '<select name="group">'; foreach ($groups_available as $group) { echo '<option value="' . $group->id . '" >' . $group->name . '</option>'; } echo '</select>'; echo '</td><td><input type="submit" value="' . _('Add to this group') . '" /></td>'; } echo '</form></tr>'; echo '</table>'; echo '</div>'; echo '</div>'; page_footer(); }
function show_default() { global $schedules; $usersgroupsList = new UsersGroupsList($_REQUEST); $groups = $usersgroupsList->search(); if (is_array($groups)) { uasort($groups, "usergroup_cmp"); } $searchDiv = $usersgroupsList->getForm(); $has_group = !(is_null($groups) or count($groups) == 0); $can_manage_usersgroups = isAuthorized('manageUsersGroups'); page_header(); echo '<div id="usersgroup_div" >'; echo '<h1>' . _('User Groups') . '</h1>'; echo $searchDiv; echo '<div id="usersgroup_list">'; if (!$has_group) { echo _('No available User Groups') . '<br />'; } else { $all_static = true; foreach ($groups as $group) { if ($group->type != 'static' || usergroupdb_is_writable()) { $all_static = false; break; // no need to continue; } } echo '<table class="main_sub sortable" id="usergroups_list" border="0" cellspacing="1" cellpadding="5">'; echo '<thead>'; echo '<tr class="title">'; if (!$all_static || usergroupdb_is_writable() and $can_manage_usersgroups and count($groups) > 1) { echo '<th class="unsortable"></th>'; // masse action } echo '<th>' . _('Name') . '</th>'; echo '<th>' . _('Description') . '</th>'; echo '<th>' . _('Status') . '</th>'; echo '<th>' . _('Type') . '</th>'; echo '</tr>'; echo '</thead>'; echo '<tbody>'; $count = 0; foreach ($groups as $group) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); if ($group->published) { $publish = '<span class="msg_ok">' . _('Enabled') . '</span>'; } else { $publish = '<span class="msg_error">' . _('Blocked') . '</span>'; } echo '<tr class="' . $content . '">'; if ($can_manage_usersgroups) { if ($group->type != 'static' || usergroupdb_is_writable() and count($groups) > 1) { echo '<td><input class="input_checkbox" type="checkbox" name="checked_groups[]" value="' . $group->id . '" /></td>'; } else { if (!$all_static and count($groups) > 1) { echo '<td></td>'; } } } echo '<td><a href="?action=manage&id=' . $group->id . '">' . $group->name . '</a></td>'; echo '<td>' . $group->description . '</td>'; echo '<td class="centered">' . $publish . '</td>'; echo '<td class="centered">' . $group->type . '</td>'; if ($group->type != 'static' || usergroupdb_is_writable() and $can_manage_usersgroups) { echo '<td><form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this group?') . '\');">'; echo '<input type="hidden" name="name" value="UserGroup" />'; echo '<input type="submit" value="' . _('Delete') . '"/>'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="checked_groups[]" value="' . $group->id . '" />'; echo '</form></td>'; } else { if (!$all_static and $can_manage_usersgroups) { echo '<td></td>'; } } echo '</tr>'; } echo '</tbody>'; $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); if (!$all_static || usergroupdb_is_writable() and $can_manage_usersgroups and count($groups) > 1) { echo '<tfoot>'; echo '<tr class="' . $content . '">'; echo '<td colspan="5"><a href="javascript:;" onclick="markAllRows(\'usergroups_list\'); return false">' . _('Mark all') . '</a> / <a href="javascript:;" onclick="unMarkAllRows(\'usergroups_list\'); return false">' . _('Unmark all') . '</a></td>'; echo '<td>'; echo '<form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete these groups?') . '\') && updateMassActionsForm(this, \'usergroups_list\');">'; echo '<input type="hidden" name="name" value="UserGroup" />'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="submit" value="' . _('Delete') . '"/>'; echo '</form>'; echo '</td>'; echo '</tr>'; echo '</tfoot>'; } echo '</table>'; } echo '</div>'; $usergroup_types = array(); if (usergroupdb_is_writable()) { $usergroup_types = array('static' => _('Static')); } if (is_module_enabled('UserGroupDBDynamic') || is_module_enabled('UserGroupDBDynamicCached')) { $usergroup_types['dynamic'] = _('Dynamic'); } if ($can_manage_usersgroups && $usergroup_types != array()) { echo '<div>'; echo '<h2>' . _('Create a new group') . '</h2>'; $first_type = array_keys($usergroup_types); $first_type = $first_type[0]; $usergroup_types2 = $usergroup_types; // bug in php 5.1.6 (redhat 5.2) foreach ($usergroup_types as $type => $name) { echo '<input class="input_radio" type="radio" name="type" value="' . $type . '" onclick="'; foreach ($usergroup_types2 as $type2 => $name2) { // bug in php 5.1.6 if ($type == $type2) { echo '$(\'table_' . $type2 . '\').show(); '; } else { echo '$(\'table_' . $type2 . '\').hide(); '; } } echo '"'; if ($type == $first_type) { echo ' checked="checked"'; } echo ' />'; echo $name; } foreach ($usergroup_types as $type => $name) { $count = 2; echo '<form action="actions.php" method="post">'; echo '<table id="table_' . $type . '"'; if ($type != $first_type) { echo ' style="display: none" '; } else { echo ' style="display: visible" '; } echo ' border="0" class="main_sub" cellspacing="1" cellpadding="5" >'; echo '<input type="hidden" name="name" value="UserGroup" />'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="type" value="' . $type . '" />'; echo '<tr class="content' . ($count++ % 2 == 0 ? 1 : 2) . '">'; echo '<th>' . _('Name') . '</th>'; echo '<td><input type="text" name="name_group" value="" /></td>'; echo '</tr>'; echo '<tr class="content' . ($count++ % 2 == 0 ? 1 : 2) . '">'; echo '<th>' . _('Description') . '</th>'; echo '<td><input type="text" name="description_group" value="" /></td>'; echo '</tr>'; if (str_startswith($type, 'dynamic')) { echo '<tr class="content' . ($count++ % 2 == 0 ? 1 : 2) . '">'; echo '<th>' . _('Cached') . '</th>'; echo '<td>'; echo '<input type="radio" name="cached" value="0" checked="checked" onclick="$(\'schedule_select\').hide();" /> ' . _('No'); if (is_module_enabled('UserGroupDBDynamicCached')) { echo '<input type="radio" name="cached" value="1" onclick="$(\'schedule_select\').show();" /> ' . _('Yes'); echo ' <span id="schedule_select" style="display: none;"><br />' . _('Time between two updates:') . ' <select name="schedule">'; foreach ($schedules as $interval => $text) { echo '<option value="' . $interval . '">' . $text . '</option>'; } echo '</select></span>'; } echo '</td>'; echo '</tr>'; echo '<tr class="content' . ($count++ % 2 == 0 ? 1 : 2) . '">'; echo '<th>' . _('Validation type') . '</th>'; echo '<td><input type="radio" name="validation_type" value="and" checked="checked" /> ' . _('All') . ' <input type="radio" name="validation_type" value="or" /> ' . _('At least one') . '</td>'; echo '</tr>'; echo '<tr class="content' . ($count++ % 2 == 0 ? 1 : 2) . '">'; echo '<th>' . _('Filters') . '</th>'; echo '<td>'; $i = 0; $filter_attributes = array('login', 'displayname'); foreach ($filter_attributes as $key1 => $value1) { if ($value1 == 'password') { unset($filter_attributes[$key1]); } } $filter_types = array('equal', 'not_equal', 'contains', 'not_contains', 'startswith', 'not_startswith', 'endswith', 'not_endswith'); echo '<table border="0" cellspacing="1" cellpadding="3">'; echo '<tr>'; echo '<td><select name="rules[0][attribute]">'; foreach ($filter_attributes as $filter_attribute) { echo '<option value="' . $filter_attribute . '">' . $filter_attribute . '</option>'; } echo '</select></td>'; echo '<td><select name="rules[0][type]">'; foreach ($filter_types as $filter_type) { echo '<option value="' . $filter_type . '">' . $filter_type . '</option>'; } echo '</select></td>'; echo '<td><input type="text" name="rules[0][value]" value="" /></td>'; echo '<td><input style="display: none;" type="button" onclick="del_field(this.parentNode.parentNode); return false;" value="-" /><input type="button" onclick="add_field(this.parentNode.parentNode); return false;" value="+" /></td>'; echo '</tr>'; echo '</table>'; echo '</td>'; echo '</tr>'; } echo '<tr class="content1">'; echo '<td class="centered" colspan="2"><input type="submit" value="' . _('Add') . '" /></td>'; echo '</tr>'; echo '</table>'; echo '</form>'; } echo '</div>'; } //if ($can_manage_usersgroups) echo '</div>'; page_footer(); die; }
function show_manage($login) { $u = $_SESSION['service']->user_info($login); if (!is_object($u)) { die_error('Unable to import user "' . $login . '"', __FILE__, __LINE__); } $userdb_rw = userdb_is_writable(); $usergroupdb_rw = usergroupdb_is_writable(); $keys = array(); foreach ($u->getAttributesList() as $attr) { if (!in_array($attr, array('login', 'displayname'))) { $keys[] = $attr; } } // Users Group $groups_mine = $u->getAttribute('groups'); $groups_partial_list = $u->getAttribute('groups_partial_list'); $usersgroupsList = new UsersGroupsList($_REQUEST); if ($groups_partial_list) { if ($usersgroupsList->is_empty_filter()) { $usersgroupsList->set_external_result($groups_mine, true); } else { $groups_mine2 = $usersgroupsList->search($login); if (is_null($groups_mine)) { die_error(_('Error while requesting User Group data'), __FILE__, __LINE__); } $groups_mine = array(); foreach ($groups_mine2 as $group) { $groups_mine[$group->id] = $group->name; } } } uasort($groups_mine, 'usergroup_cmp'); $groups_available = array(); $default_group_id = null; if ($usergroupdb_rw) { // do not request other groups if we do not display the 'add to' panel ... $groups_all = $usersgroupsList->search(); usort($groups_all, "usergroup_cmp"); foreach ($groups_all as $group) { if (!array_key_exists($group->id, $groups_mine)) { $groups_available[] = $group; } if ($group->isDefault()) { $default_group_id = $group->id; } } } uasort($groups_available, 'usergroup_cmp'); // need to be after all search call! $searchDiv = $usersgroupsList->getForm(); $can_manage_users = isAuthorized('manageUsers'); $can_manage_usersgroups = isAuthorized('manageUsersGroups'); $can_manage_profiles = isAuthorized('manageSharedFolders'); $prefs_of_a_user = array(); $unuse_settings = array(); $session_prefs = array(); if ($u->hasAttribute('settings_default')) { $prefs = new Preferences_admin(null, false); $categs = $u->getAttribute('settings_default'); $categs2 = array(); if ($u->hasAttribute('settings')) { $categs2 = $u->getAttribute('settings'); } foreach ($categs as $categ => $settings) { $session_prefs[$categ] = array(); $prefs_of_a_user[$categ] = array(); $unuse_settings[$categ] = array(); foreach ($settings as $setting_id => $setting_attributes) { $p = $prefs->load_element($setting_attributes, 'general_' . $categ); $session_prefs[$categ][$setting_id] = $p; if (array_key_exists($categ, $categs2) && array_key_exists($setting_id, $categs2[$categ])) { $p2 = clone $p; $p2->content = $categs2[$categ][$setting_id]; $prefs_of_a_user[$categ][$setting_id] = $p2; } else { $unuse_settings[$categ][$setting_id] = $p; } } } } $applications = array(); if ($u->hasAttribute('applications')) { $applications = $u->getAttribute('applications'); uasort($applications, 'application_cmp'); } page_header(); echo '<div id="users_div">'; echo '<h1>' . $u->getAttribute('displayname') . '</h1>'; echo '<table class="main_sub" border="0" cellspacing="1" cellpadding="5">'; echo '<tr class="title">'; echo '<th>' . _('Login') . '</th>'; echo '<th>' . _('Locale') . '</th>'; echo '</tr>'; echo '<tr class="content1">'; echo '<td>' . $u->getAttribute('login') . '</td>'; echo '<td>' . $u->getAttribute('locale') . '</td>'; echo '</tr>'; echo '</table>'; if ($userdb_rw and $can_manage_users) { echo '<div>'; echo '<h2>' . _('Settings') . '</h2>'; echo '<div>'; echo '<form action="actions.php" onsubmit="return confirm(\'' . _('Are you sure you want to delete this user?') . '\');">'; echo '<input type="submit" value="' . _('Delete this user') . '"/>'; echo '<input type="hidden" name="name" value="User" />'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="checked_users[]" value="' . htmlspecialchars($login) . '" />'; echo '</form>'; echo '</div>'; echo '<br/><br/>'; echo '<div>'; echo '<form action="actions.php" method="post">'; echo '<input type="hidden" name="name" value="User" />'; echo '<input type="hidden" name="action" value="modify" />'; echo '<input type="hidden" name="id" value="' . htmlspecialchars($login) . '" />'; echo '<table class="main_sub" border="0" cellspacing="1" cellpadding="5">'; $count = 0; $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '">'; echo '<th>' . _('Display name') . '</th>'; echo '<td><input type="text" name="displayname" value="' . htmlspecialchars($u->getAttribute('displayname')) . '" /></td>'; echo '</tr>'; if ($u->hasAttribute('password')) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '">'; echo '<th>' . _('New password') . '</th>'; echo '<td><input type="password" name="password" value="" /></td>'; echo '</tr>'; } $content = 'content' . ($count % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '">'; echo '<td colspan="2">'; echo '<input type="submit" name="modify" value="' . _('Save changes') . '" />'; echo '</td>'; echo '</tr>'; echo '</table>'; echo '</form>'; echo '</div>'; } // User groups part if (count($groups_mine) > 0 or !$usersgroupsList->is_empty_filter() or $usergroupdb_rw and count($groups_all) > 0) { echo '<div>'; echo '<h2>' . _('User Groups with this user') . '</h2>'; echo $searchDiv; echo '<table border="0" cellspacing="1" cellpadding="3">'; foreach ($groups_mine as $group_id => $group_name) { echo '<tr><td>'; if ($can_manage_usersgroups) { echo '<a href="usersgroup.php?action=manage&id=' . $group_id . '">' . $group_name . '</a>'; } else { echo $group_name; } echo '</td>'; if ($usergroupdb_rw and $can_manage_usersgroups and $group_id != $default_group_id) { echo '<td><form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this user from this group?') . '\');">'; echo '<input type="hidden" name="name" value="User_UserGroup" />'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="group" value="' . $group_id . '" />'; echo '<input type="hidden" name="element" value="' . htmlspecialchars($login) . '" />'; echo '<input type="submit" value="' . _('Delete from this group') . '" />'; echo '</form></td>'; } echo '</tr>'; } if (count($groups_available) > 0 && $usergroupdb_rw and $can_manage_usersgroups) { echo '<tr><form action="actions.php" method="post"><td>'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="name" value="User_UserGroup" />'; echo '<input type="hidden" name="element" value="' . htmlspecialchars($login) . '" />'; echo '<select name="group">'; foreach ($groups_available as $group) { echo '<option value="' . $group->id . '" >' . $group->name . '</option>'; } echo '</select>'; echo '</td><td><input type="submit" value="' . _('Add to this group') . '" /></td>'; echo '</form></tr>'; } echo '</table>'; echo "</div>\n"; } $apps_s = array(); if (count($applications) > 0) { echo '<br />'; echo '<h2>' . _('Published Applications') . '</h2>'; echo '<table border="0" cellspacing="1" cellpadding="3">'; foreach ($applications as $application_id => $application_name) { echo '<tr>'; echo '<td><img class="icon32" src="media/image/cache.php?id=' . $application_id . '" alt="" title="" /></td>'; echo '<td><a href="applications.php?action=manage&id=' . $application_id . '">' . $application_name . '</a></td>'; echo '</tr>'; } echo '</table>'; } echo '<h2>'; echo _('Session Settings configuration'); echo '</h2>'; if ($prefs_of_a_user != array()) { foreach ($prefs_of_a_user as $container => $prefs_of_a_user_value) { echo '<fieldset class="prefssessionusergroup">'; echo '<legend>' . $prefs->getPrettyName('general_' . $container) . '</legend>'; echo '<form action="actions.php" method="post">'; $key_name = 'general'; echo '<input type="hidden" name="container" value="' . $container . '" />'; // from admin/functions.inc.php $color = 0; if (count($prefs_of_a_user_value) != 0) { echo '<table class="main_sub" border="0" cellspacing="1" cellpadding="3" style="margin-bottom: 10px;">'; // TODO echo '<tr class="title">'; echo '<th>' . _('Name') . '</th>'; echo '<th>' . _('Default value') . '</th>'; echo '<th>' . _('Value') . '</th>'; echo '<th>' . _('Action') . '</th>'; echo '<tr>'; foreach ($prefs_of_a_user_value as $element_key => $config_element) { echo '<tr class="content' . ($color % 2 + 1) . '">'; echo '<td style="width: 250px;">'; echo '<span onmouseover="showInfoBulle(\'' . str_replace("'", "’", $config_element->description_detailed) . '\'); return false;" onmouseout="hideInfoBulle(); return false;">' . $config_element->label . '</span>'; echo '<td>'; $default_element = $session_prefs[$container][$config_element->id]; $default_element->setFormSeparator('NaN'); // it must be different of ___ $default_element->setPath(array('key_name' => $key_name, 'container' => $container, 'element_id' => $config_element->id)); echo $default_element->toHTML(true); echo '</td>'; echo '</td>'; echo '<td style="padding: 3px;">'; print_element($key_name, $container, $element_key, $config_element); echo '</td>'; echo '<td>'; echo '<input type="button" value="' . _('Remove this overridden setting') . '" onclick="user_settings_remove(\'' . $u->getAttribute('login') . '\',\'' . $container . '\',\'' . $config_element->id . '\'); return false;"/>'; echo '</td>'; echo '</tr>'; $color++; } // end from echo '<tr class="content' . ($color % 2 + 1) . '">'; echo '<td colspan="3"></td>'; echo '<td>'; echo '<input type="hidden" name="name" value="User_settings" />'; echo '<input type="hidden" name="container" value="' . $container . '" />'; echo '<input type="hidden" name="unique_id" value="' . $u->getAttribute('login') . '" />'; echo '<input type="hidden" name="action" value="modify" />'; echo '<input type="submit" value="' . _('Save settings') . '" />'; echo '</td>'; echo '</tr>'; echo '</table>'; echo '</form>'; } if ($unuse_settings[$container] != array()) { echo '<form action="actions.php" method="post">'; echo '<input type="hidden" name="name" value="User_settings" />'; echo '<input type="hidden" name="container" value="' . $container . '" />'; echo '<input type="hidden" name="unique_id" value="' . $u->getAttribute('login') . '" />'; echo '<input type="hidden" name="action" value="add" />'; echo '<select name="element_id">'; foreach ($unuse_settings[$container] as $setting_name => $setting_content) { echo '<option value="' . $setting_name . '" >' . $setting_content->label . '</option>'; } echo '</select>'; echo ' '; echo '<input type="submit" value="' . _('Add this setting') . '" />'; echo '</form>'; } echo '</fieldset>'; } } echo '</div>'; // Session settings configuration echo "\n\n\n"; if ($u->hasAttribute('sessions') && count($u->getAttribute('sessions')) > 0) { echo '<div>'; echo '<h2>' . _('Active sessions') . '</h2>'; echo '<table border="0" cellspacing="1" cellpadding="3">'; foreach ($u->getAttribute('sessions') as $session_id => $session_start_time) { echo '<tr>'; echo '<td>'; if (!$session_start_time) { echo _('Not started yet'); } else { echo @date('d/m/Y H:i:s', $session_start_time); } echo '</td>'; echo '<td><a href="sessions.php?info=' . $session_id . '">' . $session_id . '</td>'; echo '<td></td>'; echo '<td>'; echo '<form action="sessions.php">'; echo '<input type="hidden" name="info" value="' . $session_id . '" />'; echo '<input type="submit" value="' . _('Information about this session') . '" />'; echo '</form>'; echo '</td>'; echo '</tr>'; } echo '</table>'; echo '</div>'; } $use_profiles = false; $settings = $u->getAttribute('settings'); $settings = $settings['session_settings_defaults']; if (array_key_exists('enable_profiles', $settings)) { if ($settings['enable_profiles']['value'] == 1) { $use_profiles = true; } } else { $settings = $u->getAttribute('settings_default'); $settings = $settings['session_settings_defaults']; if (array_key_exists('enable_profiles', $settings)) { if ($settings['enable_profiles']['value'] == 1) { $use_profiles = true; } } } if ($use_profiles) { echo '<div>'; echo '<h2>' . _('Profile') . '</h2>'; if (!$u->hasAttribute('profiles')) { echo '<p>'; echo _('This user doesn\'t have a user profile'); echo '</p>'; if ($can_manage_profiles) { echo '<div>'; echo '<form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to create a profile for this user?') . '\');">'; echo '<input type="hidden" name="name" value="Profile" />'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="users[]" value="' . $u->getAttribute('login') . '" />'; echo '<input type="submit" value="' . _('Create a profile') . '" />'; echo '</form>'; echo '</div>'; } } else { foreach ($u->getAttribute('profiles') as $profile_id => $profile_info) { echo '<p>'; echo str_replace('%SERVER%', '<a href="servers.php?action=manage&id=' . $profile_info['server_id'] . '"> ' . $profile_info['server_name'] . '</a>', _('User has profile stored on server %SERVER%.')); echo '</p>'; if ($can_manage_profiles) { echo '<div>'; echo '<form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this profile?') . '\');">'; echo '<input type="hidden" name="name" value="Profile" />'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="ids[]" value="' . $profile_id . '" />'; echo '<input type="submit" value="' . _('Delete this profile') . '" />'; echo '</form>'; echo '</div>'; } } } echo '</div>'; } echo '</div>'; page_footer(); die; }
function show_manage($id) { $group = $_SESSION['service']->applications_group_info($id); if (!is_object($group)) { popup_error(_('Unable to import group')); redirect(); } if ($group->published) { $status = '<span class="msg_ok">' . _('Enabled') . '</span>'; $status_change = _('Block'); $status_change_value = 0; } else { $status = '<span class="msg_error">' . _('Blocked') . '</span>'; $status_change = _('Enable'); $status_change_value = 1; } $applications_all = $_SESSION['service']->applications_list(); $applications_id = array(); if ($group->hasAttribute('applications')) { $applications_id = $group->getAttribute('applications'); } $applications = array(); $applications_available = array(); foreach ($applications_all as $application) { if (!in_array($application->getAttribute('id'), $applications_id)) { $applications_available[] = $application; } else { $applications[] = $application; } } uasort($applications, "application_cmp"); uasort($applications_available, "application_cmp"); // Publications $groups_users = array(); if ($group->hasAttribute('usersgroups')) { $groups_users = $group->getAttribute('usersgroups'); uasort($groups_users, "usergroup_cmp"); } $usersgroupsList = new UsersGroupsList($_REQUEST); $groups_users_all = $usersgroupsList->search(); if (!is_array($groups_users_all)) { $groups_users_all = array(); popup_error(_("Failed to get User Group data")); } uasort($groups_users_all, "usergroup_cmp"); $searchDiv = $usersgroupsList->getForm(); $groups_users_available = array(); foreach ($groups_users_all as $group_users) { if (!array_key_exists($group_users->id, $groups_users)) { $groups_users_available[] = $group_users; } } $can_manage_applicationsgroups = isAuthorized('manageApplicationsGroups'); $can_manage_publications = isAuthorized('managePublications'); page_header(); echo '<div>'; echo '<h1><a href="?">' . _('Application Group management') . '</a> - ' . $group->name . '</h1>'; echo '<table class="main_sub" border="0" cellspacing="1" cellpadding="3">'; echo '<tr class="title">'; echo '<th>' . _('Description') . '</th>'; echo '<th>' . _('Status') . '</th>'; echo '</tr>'; echo '<tr class="content1">'; echo '<td>' . $group->description . '</td>'; echo '<td>' . $status . '</td>'; echo '</tr>'; echo '</table>'; if ($can_manage_applicationsgroups) { echo '<div>'; echo '<h2>' . _('Settings') . '</h2>'; echo '<form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this group?') . '\');">'; echo '<input type="submit" value="' . _('Delete this group') . '"/>'; echo '<input type="hidden" name="name" value="ApplicationsGroup" />'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="checked_groups[]" value="' . $id . '" />'; echo '<input type="hidden" name="id" value="' . $id . '" />'; echo '</form>'; echo '<br/>'; echo '<form action="actions.php" method="post">'; echo '<input type="hidden" name="name" value="ApplicationsGroup" />'; echo '<input type="hidden" name="action" value="modify" />'; echo '<input type="hidden" name="id" value="' . $id . '" />'; echo '<input type="hidden" name="published_appsgroup" value="' . $status_change_value . '" />'; echo '<input type="submit" value="' . $status_change . '"/>'; echo '</form>'; echo '<br/>'; echo '<form action="actions.php" method="post">'; echo '<input type="hidden" name="name" value="ApplicationsGroup" />'; echo '<input type="hidden" name="action" value="modify" />'; echo '<input type="hidden" name="id" value="' . $id . '" />'; echo '<input type="text" name="name_appsgroup" value="' . $group->name . '" size="50" /> '; echo '<input type="submit" value="' . _('Update the name') . '"/>'; echo '</form>'; echo '<br/>'; echo '<form action="actions.php" method="post">'; echo '<input type="hidden" name="name" value="ApplicationsGroup" />'; echo '<input type="hidden" name="action" value="modify" />'; echo '<input type="hidden" name="id" value="' . $id . '" />'; echo '<input type="text" name="description_appsgroup" value="' . $group->description . '" size="50" /> '; echo '<input type="submit" value="' . _('Update the description') . '"/>'; echo '</form>'; echo '<br/>'; } // Application part if (count($applications_all) > 0 and $can_manage_applicationsgroups or count($applications) > 0) { echo '<div>'; echo '<h2>' . _('List of applications in this group') . '</h2>'; echo '<table border="0" cellspacing="1" cellpadding="3">'; if (count($applications) > 0) { foreach ($applications as $application) { echo '<tr>'; echo '<td><img class="icon32" src="media/image/cache.php?id=' . $application->getAttribute('id') . '" alt="' . $application->getAttribute('name') . '" title="' . $application->getAttribute('name') . '" /> <a href="applications.php?action=manage&id=' . $application->getAttribute('id') . '">' . $application->getAttribute('name') . '</a>'; echo '</td>'; if ($can_manage_applicationsgroups) { echo '<td>'; echo '<form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this application?') . '\');">'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="name" value="Application_ApplicationGroup" />'; echo '<input type="hidden" name="group" value="' . $id . '" />'; echo '<input type="hidden" name="element" value="' . $application->getAttribute('id') . '" />'; echo '<input type="submit" value="' . _('Delete from this group') . '" />'; echo '</form>'; echo '</td>'; } echo '</tr>'; } } if (count($applications_available) > 0 and $can_manage_applicationsgroups) { echo '<tr><form action="actions.php" method="post"><td>'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="name" value="Application_ApplicationGroup" />'; echo '<input type="hidden" name="group" value="' . $id . '" />'; echo '<select name="element">'; foreach ($applications_available as $application) { echo '<option value="' . $application->getAttribute('id') . '" >' . $application->getAttribute('name') . ' (' . $application->getAttribute('type') . ')</option>'; } echo '</select>'; echo '</td><td><input type="submit" value="' . _('Add to this group') . '" /></td>'; echo '</form></tr>'; } echo '</table>'; echo '</div>'; } /* // Servers echo '<div>'; echo '<h2>'._('List of servers including this group').'</h2>'; echo '<table border="0" cellspacing="1" cellpadding="3">'; if (count($servers) == 0) echo '<tr><td colspan="2">'._('No server has this group').'</td></tr>'; else { foreach($servers as $server) { echo '<tr>'; echo '<td><a href="servers.php?action=manage&id='.$server->id.'">'.$server->getDisplayName().'</a>'; echo '</td>'; echo '<td>'; echo '<form action="actions.php" method="post" onsubmit="return confirm(\''._('Are you sure you want to delete this group from this server?').'\');">'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="name" value="ApplicationGroup_Server" />'; echo '<input type="hidden" name="group" value="'.$id.'" />'; echo '<input type="hidden" name="server" value="'.$server->id.'" />'; echo '<input type="submit" value="'._('Delete from this group').'" /> FIXME'; echo '</form>'; echo '</td>'; echo '</tr>'; } } if (count ($servers_available) ==0) echo '<tr><td colspan="2">'._('Not any available server to add').'</td></tr>'; else { echo '<tr><form action="actions.php" method="post"><td>'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="name" value="Application_ApplicationGroup" />'; echo '<input type="hidden" name="group" value="'.$id.'" />'; echo '<select name="element">'; foreach($servers_available as $servers) echo '<option value="'.$server->id.'" >'.$server->getDisplayName().'</option>'; echo '</select>'; echo '</td><td><input type="submit" value="'._('Add to this server').'" /></td>'; echo '</form></tr>'; } echo '</table>'; echo '</div>'; */ // Publication part if (count($groups_users_all) > 0) { echo '<div>'; echo '<h2>' . _('List of publications for this group') . '</h1>'; echo '<table border="0" cellspacing="1" cellpadding="3">'; if (count($groups_users) > 0) { foreach ($groups_users as $group_users_id => $group_users_name) { echo '<tr>'; echo '<td><a href="usersgroup.php?action=manage&id=' . $group_users_id . '">' . $group_users_name . '</td>'; if ($can_manage_publications) { echo '<td>'; echo '<form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this publication?') . '\');">'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="name" value="Publication" />'; echo '<input type="hidden" name="group_a" value="' . $id . '" />'; echo '<input type="hidden" name="group_u" value="' . $group_users_id . '" />'; echo '<input type="submit" value="' . _('Delete this publication') . '" />'; echo '</form>'; echo '</td>'; } echo '</tr>'; } } if (count($groups_users_available) > 0 and $can_manage_publications) { echo '<tr><form action="actions.php" method="get"><td>'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="name" value="Publication" />'; echo '<input type="hidden" name="group_a" value="' . $id . '" />'; echo '<select name="group_u">'; foreach ($groups_users_available as $group_users) { echo '<option value="' . $group_users->id . '" >' . $group_users->name . '</option>'; } echo '</select>'; echo '</td><td><input type="submit" value="' . _('Add this publication') . '" /></td>'; echo '</form></tr>'; } echo '</table>'; echo $searchDiv; echo '</div>'; } echo '</div>'; echo '</div>'; echo '</div>'; page_footer(); die; }
function show_default() { $publications = array(); $groups_apps = $_SESSION['service']->applications_groups_list(); if (is_null($groups_apps)) { $groups_apps = array(); } foreach ($groups_apps as $i => $group_apps) { if (!$group_apps->published) { unset($groups_apps[$i]); } $group_apps2 = $_SESSION['service']->applications_group_info($group_apps->id); if (is_null($group_apps2)) { unset($groups_apps[$i]); } $groups_apps[$i] = $group_apps2; } $usersgroupsList = new UsersGroupsList($_REQUEST); $groups_users = $usersgroupsList->search(); if (!is_array($groups_users)) { $groups_users = array(); popup_error(_("Failed to get User Groups list")); } uasort($groups_users, "usergroup_cmp"); $searchDiv = $usersgroupsList->getForm(); foreach ($groups_users as $i => $group_users) { if (!$group_users->published) { unset($groups_users[$i]); } } // Starts from the applications groups instead of users groups because // it's possible to not be able to have the complete users groups list (LDAP) foreach ($groups_apps as $group_apps) { if (!$group_apps->hasAttribute('usersgroups')) { continue; } foreach ($group_apps->getAttribute('usersgroups') as $group_users_id => $group_users_name) { $group_users = $_SESSION['service']->users_group_info($group_users_id); if (is_null($group_users)) { continue; } if (!$group_users->published) { continue; } $publications[] = array('user' => $group_users, 'app' => $group_apps); } } $has_publish = count($publications); $can_add_publish = true; if (count($groups_users) == 0) { $can_add_publish = false; } elseif (count($groups_apps) == 0) { $can_add_publish = false; } elseif (count($groups_users) * count($groups_apps) <= count($publications)) { $can_add_publish = false; } $servers_groups = $_SESSION['service']->servers_groups_list(); $publication_servers = array(); foreach ($servers_groups as $servers_group_id => $servers_group) { $servers_group = $_SESSION['service']->servers_group_info($servers_group_id); if (!is_object($servers_group)) { continue; } if (!$servers_group->published) { continue; } if (!$servers_group->hasAttribute('usersgroups')) { continue; } foreach ($servers_group->getAttribute('usersgroups') as $users_group_id => $users_group_name) { $users_group = $_SESSION['service']->users_group_info($users_group_id); if (is_null($users_group)) { continue; } if (!$users_group->published) { continue; } $publication_servers[] = array('user' => $users_group, 'server' => $servers_group); } } $count = 0; $can_manage_publications = isAuthorized('managePublications'); page_header(array('js_files' => array('media/script/publication.js'))); echo '<div>'; echo '<h1>' . _('Publications') . '</h1>'; echo '<table class="main_sub sortable" id="publications_list_table" border="0" cellspacing="1" cellpadding="5">'; echo '<thead>'; echo '<tr class="title">'; echo '<th>' . _('User Group') . '</th>'; echo '<th>' . _('Application Group') . '</th>'; echo '</tr>'; echo '</thead>'; echo '<tbody>'; if (!$has_publish) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '"><td colspan="3">' . _('No publications') . '</td></tr>'; } else { foreach ($publications as $publication) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); $group_u = $publication['user']; $group_a = $publication['app']; echo '<tr class="' . $content . '">'; echo '<td><a href="usersgroup.php?action=manage&id=' . $group_u->id . '">' . $group_u->name . '</a></td>'; echo '<td><a href="appsgroup.php?action=manage&id=' . $group_a->id . '">' . $group_a->name . '</a></td>'; if ($can_manage_publications) { echo '<td><form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this publication?') . '\');"><div>'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="name" value="Publication" />'; echo '<input type="hidden" name="group_a" value="' . $group_a->id . '" />'; echo '<input type="hidden" name="group_u" value="' . $group_u->id . '" />'; echo '<input type="submit" value="' . _('Delete') . '"/>'; echo '</div></form></td>'; } echo '</tr>'; } } echo '</tbody>'; $nb_groups_apps = count($groups_apps); $nb_groups_users = count($groups_users); if ($can_add_publish and $can_manage_publications) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tfoot>'; echo '<tr class="' . $content . '">'; echo '<td>'; echo '<select id="select_group_u" name="group_u" onchange="ovdsm_publication_hook_select(this)" style="width: 100%;">'; echo '<option value="">*</option>'; foreach ($groups_users as $group_users) { if (!$group_users->hasAttribute('applicationsgroups') || count($group_users->getAttribute('applicationsgroups')) < $nb_groups_apps) { echo '<option value="' . $group_users->id . '" >' . $group_users->name . '</option>'; } } echo '</select>'; echo '</td>'; echo '<td>'; echo '<select id="select_group_a" name="group_a" onchange="ovdsm_publication_hook_select(this)" style="width: 100%;">'; echo '<option value="" >*</option>'; foreach ($groups_apps as $group_apps) { if (!$group_apps->hasAttribute('usersgroups') || count($group_apps->getAttribute('usersgroups')) < $nb_groups_users) { echo '<option value="' . $group_apps->id . '" >' . $group_apps->name . '</option>'; } } echo '</select>'; echo '</td><td>'; echo '<form action="actions.php" method="post" ><div>'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="name" value="Publication" />'; echo '<input type="hidden" name="group_u" value="" id="input_group_u" />'; echo '<input type="hidden" name="group_a" value="" id="input_group_a" />'; echo '<input type="button" value="' . _('Add') . '" onclick="if($(\'input_group_u\').value == \'\') {alert(\'' . addslashes(_('Please select a User Group')) . '\'); return;} if($(\'input_group_a\').value == \'\') {alert(\'' . addslashes(_('Please select an Application Group')) . '\'); return;} this.form.submit();" />'; echo '</div></form>'; echo '</td>'; echo '</tr>'; echo '</tfoot>'; } echo '</table>'; echo '<br /><br /><br />'; echo '</div>'; // Servers groups publication $count = 0; echo '<div>'; echo '<h2>' . _('Server Group publications') . '</h2>'; echo '<table class="main_sub sortable" border="0" cellspacing="1" cellpadding="5">'; echo '<thead>'; echo '<tr class="title">'; echo '<th>' . _('User Group') . '</th>'; echo '<th>' . _('Server Group') . '</th>'; echo '</tr>'; echo '</thead>'; echo '<tbody>'; if (count($publication_servers) == 0) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tr class="' . $content . '"><td colspan="3">' . _('No publication') . '</td></tr>'; } else { foreach ($publication_servers as $publication) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); $group_u = $publication['user']; $group_s = $publication['server']; echo '<tr class="' . $content . '">'; echo '<td><a href="usersgroup.php?action=manage&id=' . $group_u->id . '">' . $group_u->name . '</a></td>'; echo '<td><a href="serversgroup.php?action=manage&id=' . $group_s->id . '">' . $group_s->name . '</a></td>'; if ($can_manage_publications) { echo '<td><form action="actions.php" method="post" onsubmit="return confirm(\'' . _('Are you sure you want to delete this publication?') . '\');"><div>'; echo '<input type="hidden" name="action" value="del" />'; echo '<input type="hidden" name="name" value="UsersGroupServersGroup" />'; echo '<input type="hidden" name="servers_group" value="' . $group_s->id . '" />'; echo '<input type="hidden" name="users_group" value="' . $group_u->id . '" />'; echo '<input type="submit" value="' . _('Delete') . '"/>'; echo '</div></form></td>'; } echo '</tr>'; } } echo '</tbody>'; if ($can_manage_publications) { $content = 'content' . ($count++ % 2 == 0 ? 1 : 2); echo '<tfoot>'; echo '<form action="actions.php" method="post" >'; echo '<input type="hidden" name="action" value="add" />'; echo '<input type="hidden" name="name" value="UsersGroupServersGroup" />'; echo '<tr class="' . $content . '">'; echo '<td>'; echo '<select name="users_group" style="width: 100%;">'; echo '<option value="">*</option>'; foreach ($groups_users as $group_users) { echo '<option value="' . $group_users->id . '" >' . $group_users->name . '</option>'; } echo '</select>'; echo '</td>'; echo '<td>'; echo '<select name="servers_group" style="width: 100%;">'; echo '<option value="" >*</option>'; foreach ($servers_groups as $servers_group) { echo '<option value="' . $servers_group->id . '" >' . $servers_group->name . '</option>'; } echo '</select>'; echo '</td><td>'; echo '<input type="submit" value="' . _('Add') . '" />'; echo '</td>'; echo '</tr>'; echo '</form>'; echo '</tfoot>'; } echo '</table>'; echo '</div>'; echo '<br /><br /><br />'; echo $searchDiv; echo '</div>'; page_footer(); }