exit; } nt_common_add_debug('-- User authentification complete.'); // some site settings if (NELTOOL_DEBUG && $nel_user['group_level'] == 10) { $tpl->assign('NELTOOL_DEBUG', true); //$nel_debug); } $tpl->assign('nel_script', $NELTOOL['SERVER_VARS']['SCRIPT_NAME']); $tpl->assign('nel_request_uri', basename($NELTOOL['SERVER_VARS']['REQUEST_URI'])); $tpl->assign('nel_tool_title', NELTOOL_SITETITLE); $tpl->assign('nel_web_base_uri', NELTOOL_SITEBASE); $tpl->assign('tool_title', "<unknown>"); $tpl->assign('user_info', $nel_user['user_name'] . ' (' . $nel_user['group_name'] . ')'); // load user & group applications/domains/shards $nel_user['access'] = array('applications' => tool_admin_applications_get_list(), 'user_applications' => tool_admin_users_applications_get_list($nel_user['user_id']), 'user_domains' => tool_admin_users_domains_get_list($nel_user['user_id']), 'user_shards' => tool_admin_users_shards_get_list($nel_user['user_id']), 'group_applications' => tool_admin_groups_applications_get_list($nel_user['user_group_id']), 'group_domains' => tool_admin_groups_domains_get_list($nel_user['user_group_id']), 'group_shards' => tool_admin_groups_shards_get_list($nel_user['user_group_id'])); $nel_user['access']['domains'] = tool_admin_users_groups_domains_merge(); $nel_user['access']['shards'] = tool_admin_users_groups_shards_merge(); $nel_user['has_lock'] = false; //nt_common_add_debug($nel_user); // load the user application menu $tool_application_list = tool_admin_applications_build_menu_list($nel_user['access']); $tpl->assign('nel_menu', $tool_application_list); $tpl->assign('menu_style', $nel_user['user_menu_style']); $tpl->assign('unknown_menu', 'imgs/icon_unknown.png'); if (isset($nel_user['new_login'])) { $default_user_application_id = 0; if ($nel_user['user_default_application_id'] > 0) { $default_user_application_id = $nel_user['user_default_application_id']; } elseif ($nel_user['group_default_application_id'] > 0) { $default_user_application_id = $nel_user['group_default_application_id'];
$_GET['user_id'] = $tool_user_update_id; } //break; //break; case 'edit': /* * ------------------------------------------------------------------------------------------- * Edit an existing User * ------------------------------------------------------------------------------------------- */ $tool_user_edit_id = $_GET['user_id']; $tool_user_edit_data = tool_admin_users_get_id($tool_user_edit_id); $tool_user_group_id = $tool_user_edit_data['user_group_id']; $tpl->assign('tool_user_edit_data', $tool_user_edit_data); $tool_domain_list = tool_admin_domains_get_list(); $tool_user_domain_list = tool_admin_users_domains_get_list($tool_user_edit_id, true); $tool_group_domain_list = tool_admin_groups_domains_get_list($tool_user_group_id, true); $tool_domain_list = tool_admin_users_domains_merge($tool_domain_list, $tool_user_domain_list, $tool_group_domain_list); $tpl->assign('tool_domain_list', $tool_domain_list); $tool_shard_list = tool_admin_shards_get_list(); $tool_user_shard_list = tool_admin_users_shards_get_list($tool_user_edit_id, true); $tool_group_shard_list = tool_admin_groups_shards_get_list($tool_user_group_id, true); $tool_shard_list = tool_admin_users_shards_merge($tool_domain_list, $tool_shard_list, $tool_user_shard_list, $tool_group_shard_list); $tpl->assign('tool_shard_list', $tool_shard_list); $tool_appl_list = tool_admin_applications_get_list(); $tool_user_appl_list = tool_admin_users_applications_get_list($tool_user_edit_id, true); $tool_group_appl_list = tool_admin_groups_applications_get_list($tool_user_group_id, true); $tool_appl_list = tool_admin_users_applications_merge($tool_appl_list, $tool_user_appl_list, $tool_group_appl_list); $tpl->assign('tool_application_list', $tool_appl_list); break; case 'delete':
function tool_admin_groups_domains_update($group_id, $domain_ids) { global $db; $sql = "DELETE FROM " . NELDB_GROUP_DOMAIN_TABLE . " WHERE group_domain_group_id=" . $group_id; $db->sql_query($sql); if (is_array($domain_ids) and sizeof($domain_ids)) { reset($domain_ids); foreach ($domain_ids as $domain_id) { if (is_numeric($domain_id) && $domain_id > 0) { $sql = "INSERT INTO " . NELDB_GROUP_DOMAIN_TABLE . " (`group_domain_group_id`,`group_domain_domain_id`) VALUES ('" . $group_id . "','" . $domain_id . "')"; $db->sql_query($sql); } } } $sql = "DELETE FROM " . NELDB_GROUP_SHARD_TABLE . " WHERE group_shard_group_id=" . $group_id; if (is_array($domain_ids) && sizeof($domain_ids)) { $sql .= " AND group_shard_domain_id NOT IN (" . implode(',', array_values($domain_ids)) . ")"; } $db->sql_query($sql); // we need to check some stuff for each user in this group // first we get the list of users that belong to his group $sql = "SELECT * FROM " . NELDB_USER_TABLE . " WHERE user_group_id=" . $group_id; if ($result = $db->sql_query($sql)) { if ($db->sql_numrows($result)) { while ($row = $db->sql_fetchrow($result)) { // get a user $user_id = $row['user_id']; // get the domains specific to the user $user_domain_list = tool_admin_users_domains_get_list($user_id, true); // then we delete the shard that don't belong to the group nor user $sql = "DELETE FROM " . NELDB_USER_SHARD_TABLE . " WHERE user_shard_user_id=" . $user_id; if (is_array($domain_ids) && sizeof($domain_ids)) { $sql .= " AND user_shard_domain_id NOT IN (" . implode(',', array_values($domain_ids)) . ")"; } if (is_array($user_domain_list) && sizeof($user_domain_list)) { $sql .= " AND user_shard_domain_id NOT IN (" . implode(',', array_values($user_domain_list)) . ")"; } $db->sql_query($sql); // make sure users don't have a domain that already belongs to a group $sql = "DELETE FROM " . NELDB_USER_DOMAIN_TABLE . " WHERE user_domain_user_id=" . $user_id; if (is_array($domain_ids) && sizeof($domain_ids)) { $sql .= " AND user_domain_domain_id IN (" . implode(',', array_values($domain_ids)) . ")"; } $db->sql_query($sql); } } } }