/** * SUMO MODULE: Users | Export * * @version 0.5.0 * @link http://sumoam.sourceforge.net SUMO Access Manager * @author Alberto Basso <*****@*****.**> * @copyright Copyright © 2003-2009, Alberto Basso * @package SUMO * @category Console */ // set table settings sumo_set_table_settings(); $num_groups = count($SUMO['user']['group']); // Create sql query to select only groups of user $group_query = sumo_get_group_query(false, true); $users_lang = sumo_get_string_languages(); // Create search query $search = ''; if ($_SESSION['search_users_list']) { $field['user'] = sumo_search_composer($_SESSION['search_users_list'], 'username'); $field['firstname'] = sumo_search_composer($_SESSION['search_users_list'], 'firstname'); $field['lastname'] = sumo_search_composer($_SESSION['search_users_list'], 'lastname'); $field['email'] = sumo_search_composer($_SESSION['search_users_list'], 'email'); $search = $group_query ? " AND " : " WHERE "; $operand = count($field['lastname'][1]) > 1 ? 'AND' : 'OR'; if ($field['user'][0] && $field['firstname'][0] && $field['lastname'][0]) { $search = $search . "((" . $field['user'][0] . ") OR (" . $field['email'][0] . ") OR " . "((" . $field['firstname'][0] . ") " . $operand . " (" . $field['lastname'][0] . ")) OR " . "(" . $field['usergroup'][0] . "))"; } else { $search = ''; } }
/** * Generate available languages list and flag */ function sumo_get_flags() { global $SUMO; $languages = sumo_get_available_languages(); $flags = "<div id='menuLanguages' class='menu'>\n"; for ($l = 0; $l < count($languages); $l++) { if ($languages[$l] != $_COOKIE['language']) { $lang = sumo_get_string_languages($languages[$l]); $flags .= "<a href='?sumo_lang=" . $languages[$l] . "'>" . "<img src='" . $SUMO['page']['web_path'] . "/themes/" . $SUMO['page']['theme'] . "/images/flags/" . $languages[$l] . ".png'" . " class='flag' alt='" . ucwords($lang) . "'> " . ucwords($lang) . "</a>\n"; } } $flags .= "</div>" . "<div onmouseover='dropdownmenu(this, event, \"menuLanguages\")'>" . "<img src='" . $SUMO['page']['web_path'] . "/themes/" . $SUMO['page']['theme'] . "/images/flags/" . $_COOKIE['language'] . ".png' " . "alt='" . ucwords(sumo_get_string_languages($_COOKIE['language'])) . "' " . "class='flag'>" . "</div>"; return $flags; }
} else { $tpl['PUT:Status'] = "<select name='active'>\n<option value='0'>" . $language['Disable'] . "</option>\n<option value='1'>" . $language['Enable'] . "</option>\n</select>"; } } else { $tpl['PUT:DayLimit'] = $tab['day_limit'] ? $tab['day_limit'] : $language['Unlimited']; } if ($SUMO['user']['user'] == $tab['username'] || in_array('sumo', $SUMO['user']['group']) || $SUMO['user']['id'] == $tab['owner_id']) { $tpl['PUT:FirstName'] = "<input type='text' size='35' name='firstname' value='" . htmlspecialchars($tab['firstname'], ENT_QUOTES) . "'>"; $tpl['PUT:LastName'] = "<input type='text' size='35' name='lastname' value='" . htmlspecialchars($tab['lastname'], ENT_QUOTES) . "'>"; $tpl['PUT:Email'] = "<input type='text' size='35' name='email' value='" . $tab['email'] . "'>"; $tpl['PUT:UserImage'] = "<input type='button' onclick='javascript:window.open(\"?module=users&action=editimg&id=" . $tab['id'] . "\",\"UserImage\",\"height=230,width=300,resizable=yes,scrollbars=yes,status=0,toolbar=0,location=0\");' class='button' value='" . $language['Change'] . "'>"; $tpl['PUT:Language'] = sumo_get_available_languages(1, 0, $tab['language']); } else { $tpl['PUT:FirstName'] = htmlspecialchars($tab['firstname'], ENT_QUOTES); $tpl['PUT:LastName'] = htmlspecialchars($tab['lastname'], ENT_QUOTES); $tpl['PUT:Language'] = ucfirst(sumo_get_string_languages($tab['language'])); $tpl['PUT:Email'] = "<a href='mailto:" . $tab['email'] . "' title='Send e-mail'>" . $tab['email'] . "</a>"; $tpl['PUT:UserImage'] = ""; } // to change IP if (in_array('sumo', $SUMO['user']['group']) || $SUMO['user']['id'] == $tab['owner_id']) { $tpl['PUT:IP'] = "<textarea rows='2' cols='40' name='ip'>" . implode("; ", $tab['ip']) . "</textarea>"; } else { $tpl['PUT:IP'] = implode("; ", $tab['ip']); } // Remove if ((in_array('sumo', $SUMO['user']['group']) || sumo_verify_permissions(7, $tab['group']) || $SUMO['user']['id'] == $tab['owner_id']) && $tab['username'] != 'sumo' && $tab['username'] != $SUMO['user']['user']) { $msg = sumo_get_simple_rand_string(4, "123456789"); $tpl['LINK:Remove'] = "<div class='sub-module-icon' " . "onmouseover='this.style.outline=\"1px solid #999999\";this.style.background=\"#FFFFFF\"' " . "onmouseout='this.style.outline=\"\";this.style.background=\"\"'>" . "<a href=\"javascript:sumo_show_message('msg{$msg}', '" . htmlspecialchars(sumo_get_message('AreYouSureDelete', array($tab['username'], htmlspecialchars($tab['firstname'], ENT_QUOTES), htmlspecialchars($tab['lastname'], ENT_QUOTES)))) . "', \n\t\t\t\t\t\t\t 'h', 0,\n\t\t\t\t\t\t\t '" . base64_encode(sumo_get_form_req('', 'delete', 'id=' . $tab['id'])) . "',\n\t\t\t\t\t\t\t '" . base64_encode('') . "',\n\t\t\t\t\t\t\t '" . base64_encode("<input type='button' value='" . $language['Cancel'] . "' onclick='javascript:sumo_remove_window(\"msg{$msg}\");' class='button'>") . "',\n\t\t\t\t\t\t\t '" . base64_encode("<input type='submit' value='" . $language['Ok'] . "' onclick='javascript:sumo_remove_window(\"msg{$msg}\");'>") . "');\" class='button'>" . "<img src='themes/" . $SUMO['page']['theme'] . "/images/modules/users/delete.png' vspace='4'><br>" . $language['Remove'] . "</a>" . "</div>"; } else { $tpl['LINK:Remove'] = sumo_get_action_icon("users", "delete");
/** * Get available languages from "SUMO_PATH/languages/" directory * and return an array with languages * or an HTML selection box if $type=1 * * @author Alberto Basso <*****@*****.**> */ function sumo_get_available_languages($type = 0, $autosubmit = 0, $default = '', $name = 'language') { global $SUMO; $dh = @dir(SUMO_PATH . '/languages'); while ($entry = $dh->read()) { if (is_dir(SUMO_PATH . '/languages/' . $entry) && $entry != '.' && $entry != '..') { $available_lang[] = $entry; } } $dh->close(); asort($available_lang); reset($available_lang); if ($type == 1) { $languages = sumo_get_string_languages(); $autosubmit = $autosubmit ? " onchange='submit();'" : ""; $num_available_lang = count($available_lang); $language = "<style>\n" . "select.icon-menu option {\n\t\t\t\t\t\tbackground-repeat:no-repeat;\n\t\t\t\t\t\tbackground-position:bottom left;\n\t\t\t\t\t\tpadding-left:25px;\n\t\t\t\t\t\t}"; for ($l = 0; $l < $num_available_lang; $l++) { $language .= "select#countries option[value='{$available_lang[$l]}'] {\n" . "background-image:url(themes/" . $SUMO['page']['theme'] . "/images/flags/{$available_lang[$l]}.png);\n" . "}\n"; } $language .= "</style>\n" . "<select name='" . $name . "'" . $autosubmit . " id='countries' class='icon-menu'>\n"; for ($l = 0; $l < $num_available_lang; $l++) { $selected = $available_lang[$l] == $default ? " selected" : ""; $language .= "<option value='" . $available_lang[$l] . "'{$selected}>" . ucwords($languages[$available_lang[$l]]) . "</option>\n"; } $language .= "</select>"; return $language; } else { return $available_lang; } }
* @link http://sumoam.sourceforge.net SUMO Access Manager * @author Alberto Basso <*****@*****.**> * @copyright Copyright © 2003-2009, Alberto Basso * @package SUMO * @category Console */ $tab = sumo_get_user_info($_GET['id'], 'id', FALSE); if (sumo_verify_permissions(3, $tab['group']) || sumo_verify_permissions(FALSE, FALSE, $SUMO['user']['user'])) { $datasource = sumo_get_datasource_info($tab['datasource_id'], FALSE); $tpl['GET:User'] = $tab['username']; $tpl['GET:Email'] = $tab['email']; $tpl['GET:DayLimit'] = !$tab['day_limit'] ? $language['Unlimited'] : $tab['day_limit']; $tpl['GET:FirstName'] = htmlspecialchars($tab['firstname'], ENT_QUOTES); $tpl['GET:LastName'] = htmlspecialchars($tab['lastname'], ENT_QUOTES); $tpl['GET:IP'] = implode("; ", $tab['ip']); $tpl['GET:Language'] = ucwords(sumo_get_string_languages($tab['language'])); $tpl['GET:LastLogin'] = sumo_get_human_date($tab['last_login']); $tpl['GET:AccountCreated'] = sumo_get_human_date($tab['created']); $tpl['GET:Modified'] = sumo_get_human_date($tab['modified']); $tpl['GET:UserAccessPages'] = sumo_get_user_accesspoints($tab['id'], TRUE); $tpl['GET:GroupLevel'] = sumo_get_user_grouplevel($tab['group_level']); $tpl['GET:Expire'] = $tab['day_limit'] != NULL ? sumo_get_human_date($tab['day_limit'] * 86400 + $SUMO['server']['time'], FALSE) : $language['Never']; $tpl['GET:DataSourceType'] = $datasource['name'] ? "<a href='javascript:sumo_ajax_get(\"network\",\"?module=network&action=view_datasource&id=" . $datasource['id'] . "\");'>" . $datasource['name'] . "</a>" : ''; $tpl['GET:Email'] = "<a href='mailto:" . $tab['email'] . "' title='Send e-mail'>" . $tab['email'] . "</a>"; $tpl['LINK:AddUser'] = sumo_get_action_icon("", "new", "users.content", "?module=users&action=new&decoration=false"); $tpl['LINK:EditUser'] = sumo_get_action_icon("", "edit", "users.content", "?module=users&action=edit&id=" . $tab['id'] . "&decoration=false"); $tpl['IMG:User'] = "******" . $tab['id'] . "' alt='" . $tab['username'] . "' class='user'>"; $tpl['IMG:Language'] = "<img src='themes/" . $SUMO['page']['theme'] . "/images/flags/" . $tab['language'] . ".png' alt='" . ucwords($tab['language']) . "' class='flag'>"; // Verify image support for refection effects if (function_exists('imagecreatefromjpeg') && function_exists('imagecreatefrompng') && function_exists('imagecreatefromgif')) { $tpl['IMG:User'] . "<br><img src='services.php?module=users&service=image&cmd=GET_USER_REFLECTION&id=" . $tab['id'] . "&fade=6&height=30%'>";
* @version 0.5.0 * @link http://sumoam.sourceforge.net SUMO Access Manager * @author Alberto Basso <*****@*****.**> * @copyright Copyright © 2003-2009, Alberto Basso * @package SUMO * @category Console */ $tab = sumo_get_user_info($_GET['id'], 'id', FALSE); $conf = sumo_get_config('server', FALSE); $conf = $conf['config']; $yes = "<img src='themes/" . $SUMO['page']['theme'] . "/images/modules/settings/yes.gif' alt='" . $language['Enabled'] . "'>"; $no = "<img src='themes/" . $SUMO['page']['theme'] . "/images/modules/settings/no.gif' alt='" . $language['Disabled'] . "'>"; // Generic $tpl['GET:server.admin.name'] = $conf['server']['admin']['name']; $tpl['GET:server.admin.email'] = $conf['server']['admin']['email']; $tpl['GET:server.language'] = ucwords(sumo_get_string_languages($conf['server']['language'])); $tpl['IMG:server.language'] = "<img src='themes/" . $SUMO['page']['theme'] . "/images/flags/" . $conf['server']['language'] . ".png' alt='" . $tpl['GET:server.language'] . "' class='flag'>"; $tpl['GET:server.date_format'] = $conf['server']['date_format']; $tpl['GET:server.time_format'] = $conf['server']['time_format']; $tpl['GET:iptocountry.enabled'] = $conf['iptocountry']['enabled'] ? $yes : $no; // Console $tpl['GET:console.tip'] = $conf['console']['tip'] ? $yes : $no; // Security $tpl['GET:security.max_login_attempts'] = $conf['security']['max_login_attempts']; $tpl['GET:security.banned_time'] = sumo_convert_sec2hms($conf['security']['banned_time']); $tpl['GET:security.access_violations'] = $conf['security']['access_violations'] ? $yes : $no; // Accesspoints $tpl['GET:accesspoints.stats.enabled'] = $conf['accesspoints']['stats']['enabled'] ? $yes : $no; $tpl['GET:accesspoints.def_name'] = sumo_get_accesspoint_name($conf['accesspoints']['def_name'], $_COOKIE['language']); $tpl['GET:accesspoints.def_group'] = $conf['accesspoints']['def_group']; $tpl['GET:accesspoints.def_theme'] = ucwords($conf['accesspoints']['def_theme']);