Esempio n. 1
0
     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'];
Esempio n. 2
0
         $_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);
            }
        }
    }
}