Changed language detection code, added some small features
This commit is contained in:
		
							parent
							
								
									aabd37bd1a
								
							
						
					
					
						commit
						4266a211e0
					
				
							
								
								
									
										27
									
								
								asset.php
								
								
								
								
							
							
						
						
									
										27
									
								
								asset.php
								
								
								
								
							| 
						 | 
					@ -106,32 +106,39 @@ if ($action == ACT_DEFAULT):
 | 
				
			||||||
// ========== VARIANT: default behavior =======================================
 | 
					// ========== VARIANT: default behavior =======================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// create letter links
 | 
					// create letter links
 | 
				
			||||||
$sql = "SELECT DISTINCT SUBSTRING(UPPER(asset_name),1,1) AS asset_letter
 | 
					$sql = "SELECT DISTINCT SUBSTRING(UPPER(asset_name),1,1) AS bst
 | 
				
			||||||
	FROM asset
 | 
						FROM asset
 | 
				
			||||||
	ORDER BY asset_letter";
 | 
						ORDER BY bst";
 | 
				
			||||||
$sth = $dbh->query($sql);
 | 
					$sth = $dbh->query($sql);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$alphabet = $sth->fetchAll();
 | 
					$alphabet = $sth->fetchAll();
 | 
				
			||||||
 | 
					$alphabet[] = ['bst' => '*'];
 | 
				
			||||||
$smarty->assign("alphabet", $alphabet);
 | 
					$smarty->assign("alphabet", $alphabet);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// total asset count
 | 
					// total asset count
 | 
				
			||||||
$sth = $dbh->query("SELECT COUNT(*) FROM asset");
 | 
					$sth = $dbh->query("SELECT COUNT(*) FROM asset");
 | 
				
			||||||
$smarty->assign("assetcount", $sth->fetchColumn());
 | 
					$assetcount = $sth->fetchColumn();
 | 
				
			||||||
 | 
					$smarty->assign("assetcount", $sassetcount);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// assets for current letter
 | 
					// assets for current letter
 | 
				
			||||||
if (isset($_GET['asset_letter'])) {
 | 
					if (isset($_GET['bst'])) {
 | 
				
			||||||
    $asset_letter = sanitize($_GET['asset_letter']);
 | 
					    $bst = sanitize($_GET['bst']);
 | 
				
			||||||
} else {
 | 
					} else {
 | 
				
			||||||
   $asset_letter = $alphabet[0]['asset_letter'];
 | 
					   $bst = $alphabet[0]['bst'];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$sql = "SELECT a.asset_id, IF(LENGTH(a.asset_name)>0, a.asset_name, '...') AS asset_name,
 | 
					$sql = "SELECT a.asset_id, IF(LENGTH(a.asset_name)>0, a.asset_name, '...') AS asset_name,
 | 
				
			||||||
            a.asset_info, c.assetclass_id, c.assetclass_name
 | 
					            a.asset_info, c.assetclass_id, c.assetclass_name
 | 
				
			||||||
	FROM asset AS a LEFT OUTER JOIN assetclass AS c USING (assetclass_id)
 | 
						FROM asset AS a LEFT OUTER JOIN assetclass AS c USING (assetclass_id)";
 | 
				
			||||||
	WHERE SUBSTRING(a.asset_name,1,1)=?
 | 
					if ($bst != '*') {
 | 
				
			||||||
	ORDER BY a.asset_name";
 | 
					    $sql .= " WHERE SUBSTRING(a.asset_name,1,1)=?";
 | 
				
			||||||
 | 
					    $p = array($bst);
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
					    $p = array();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					$sql .=	" ORDER BY a.asset_name";
 | 
				
			||||||
$sth = $dbh->prepare($sql);
 | 
					$sth = $dbh->prepare($sql);
 | 
				
			||||||
$sth->execute([$asset_letter]);
 | 
					$sth->execute($p);
 | 
				
			||||||
$smarty->assign("assets", $sth->fetchAll());
 | 
					$smarty->assign("assets", $sth->fetchAll());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$smarty->display("asset.tpl");
 | 
					$smarty->display("asset.tpl");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,6 +43,9 @@ if ($_SESSION['suser_menu_locations']) {
 | 
				
			||||||
if ($_SESSION['suser_menu_nodes']) {
 | 
					if ($_SESSION['suser_menu_nodes']) {
 | 
				
			||||||
    $menu[] = '<a href="node.php">' . $lang['lang_nodes'] . "</a>\n";
 | 
					    $menu[] = '<a href="node.php">' . $lang['lang_nodes'] . "</a>\n";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					if ($_SESSION['suser_menu_nats']) {
 | 
				
			||||||
 | 
					    $menu[] = '<a href="nat.php">' . $lang['lang_nats'] . "</a>\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
if ($_SESSION['suser_menu_subnets']) {
 | 
					if ($_SESSION['suser_menu_subnets']) {
 | 
				
			||||||
    $menu[] = '<a href="subnet.php">' . $lang['lang_subnets'] . "</a>\n";
 | 
					    $menu[] = '<a href="subnet.php">' . $lang['lang_subnets'] . "</a>\n";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,4 +32,4 @@ $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
include("lib.php");
 | 
					include("lib.php");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$language = lang_getfrombrowser($config_lang, $config_lang_default, null, false);
 | 
					// $language = lang_getfrombrowser($config_lang, $config_lang_default);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,11 @@
 | 
				
			||||||
INSERT INTO asset (asset_name, assetclass_id) VALUES
 | 
					INSERT INTO asset (asset_name, assetclass_id) VALUES
 | 
				
			||||||
('Computer', 1),
 | 
					('Computer Alice', 1),
 | 
				
			||||||
 | 
					('Computer Bob', 1),
 | 
				
			||||||
 | 
					('Computer Admin', 1),
 | 
				
			||||||
('Server', 3),
 | 
					('Server', 3),
 | 
				
			||||||
('Printer', 4),
 | 
					('Printer', 4),
 | 
				
			||||||
('Firewall', 6);
 | 
					('Firewall', 6),
 | 
				
			||||||
 | 
					('Air Condition System', 8);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSERT INTO assetclass (assetclassgroup_id, assetclass_name) VALUES
 | 
					INSERT INTO assetclass (assetclassgroup_id, assetclass_name) VALUES
 | 
				
			||||||
(1, 'Desktop'),
 | 
					(1, 'Desktop'),
 | 
				
			||||||
| 
						 | 
					@ -11,7 +14,8 @@ INSERT INTO assetclass (assetclassgroup_id, assetclass_name) VALUES
 | 
				
			||||||
(3, 'Printer'),
 | 
					(3, 'Printer'),
 | 
				
			||||||
(4, 'Switch'),
 | 
					(4, 'Switch'),
 | 
				
			||||||
(4, 'Firewall'),
 | 
					(4, 'Firewall'),
 | 
				
			||||||
(5, 'Scanner');
 | 
					(5, 'Scanner'),
 | 
				
			||||||
 | 
					(5, 'Other');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSERT INTO assetclassgroup (assetclassgroup_name, assetclassgroup_color) VALUES
 | 
					INSERT INTO assetclassgroup (assetclassgroup_name, assetclassgroup_color) VALUES
 | 
				
			||||||
('Personal Computer', '000000'),
 | 
					('Personal Computer', '000000'),
 | 
				
			||||||
| 
						 | 
					@ -54,7 +58,9 @@ INSERT INTO user (user_name, user_pass, user_displayname) VALUES
 | 
				
			||||||
('bob', '$2y$10$hl4NN4lOyuz7KN0ZjLHbOuCqGi08GVaTvl/RiMcL1mbFqGmtzDN76', 'Bob');
 | 
					('bob', '$2y$10$hl4NN4lOyuz7KN0ZjLHbOuCqGi08GVaTvl/RiMcL1mbFqGmtzDN76', 'Bob');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSERT INTO vlan (vlan_number, vlan_name) VALUES
 | 
					INSERT INTO vlan (vlan_number, vlan_name) VALUES
 | 
				
			||||||
(1, 'DEFAULT_VLAN');
 | 
					(1, 'DEFAULT_VLAN'),
 | 
				
			||||||
 | 
					(2, 'WLAN'),
 | 
				
			||||||
 | 
					(3, 'DMZ');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSERT INTO zone (zone_soa, zone_origin, zone_hostmaster, zone_serial, zone_ns1) VALUES
 | 
					INSERT INTO zone (zone_soa, zone_origin, zone_hostmaster, zone_serial, zone_ns1) VALUES
 | 
				
			||||||
('ns1.example.com.', 'example.com.', 'hostmaster.example.com.', '2023021301', 'ns1.example.com');
 | 
					('ns1.example.com.', 'example.com.', 'hostmaster.example.com.', '2023021301', 'ns1.example.com');
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,8 @@ $lang = array(
 | 
				
			||||||
    'lang_location' => 'Standort',
 | 
					    'lang_location' => 'Standort',
 | 
				
			||||||
    'lang_locations' => 'Standorte',
 | 
					    'lang_locations' => 'Standorte',
 | 
				
			||||||
    'lang_menu' => 'Menü',
 | 
					    'lang_menu' => 'Menü',
 | 
				
			||||||
 | 
					    'lang_nat' => 'NAT',
 | 
				
			||||||
 | 
					    'lang_nats' => 'NATs',
 | 
				
			||||||
    'lang_node' => 'Knoten',
 | 
					    'lang_node' => 'Knoten',
 | 
				
			||||||
    'lang_nodes' => 'Knoten',
 | 
					    'lang_nodes' => 'Knoten',
 | 
				
			||||||
    'lang_user' => 'Benutzer',
 | 
					    'lang_user' => 'Benutzer',
 | 
				
			||||||
| 
						 | 
					@ -128,7 +130,6 @@ $lang = array(
 | 
				
			||||||
    'lang_mac' => 'MAC-Adresse',
 | 
					    'lang_mac' => 'MAC-Adresse',
 | 
				
			||||||
    'lang_proto_vers' => 'Protokollversion',
 | 
					    'lang_proto_vers' => 'Protokollversion',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'lang_nat' => 'NAT',
 | 
					 | 
				
			||||||
    'lang_nat_add' => 'NAT hinzufügen',
 | 
					    'lang_nat_add' => 'NAT hinzufügen',
 | 
				
			||||||
    'lang_nat_del' => 'NAT löschen',
 | 
					    'lang_nat_del' => 'NAT löschen',
 | 
				
			||||||
    'lang_nat_edit' => 'NAT ändern',
 | 
					    'lang_nat_edit' => 'NAT ändern',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,8 @@ $lang = array(
 | 
				
			||||||
    'lang_location' => 'Location',
 | 
					    'lang_location' => 'Location',
 | 
				
			||||||
    'lang_locations' => 'Locations',
 | 
					    'lang_locations' => 'Locations',
 | 
				
			||||||
    'lang_menu' => 'Menu',
 | 
					    'lang_menu' => 'Menu',
 | 
				
			||||||
 | 
					    'lang_nat' => 'NAT',
 | 
				
			||||||
 | 
					    'lang_nats' => 'NATs',
 | 
				
			||||||
    'lang_node' => 'Node',
 | 
					    'lang_node' => 'Node',
 | 
				
			||||||
    'lang_nodes' => 'Nodes',
 | 
					    'lang_nodes' => 'Nodes',
 | 
				
			||||||
    'lang_user' => 'User',
 | 
					    'lang_user' => 'User',
 | 
				
			||||||
| 
						 | 
					@ -128,7 +130,6 @@ $lang = array(
 | 
				
			||||||
    'lang_mac' => 'MAC Address',
 | 
					    'lang_mac' => 'MAC Address',
 | 
				
			||||||
    'lang_proto_vers' => 'Protocol version',
 | 
					    'lang_proto_vers' => 'Protocol version',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'lang_nat' => 'NAT',
 | 
					 | 
				
			||||||
    'lang_nat_add' => 'Add NAT',
 | 
					    'lang_nat_add' => 'Add NAT',
 | 
				
			||||||
    'lang_nat_del' => 'Delete NAT',
 | 
					    'lang_nat_del' => 'Delete NAT',
 | 
				
			||||||
    'lang_nat_edit' => 'Modify NAT',
 | 
					    'lang_nat_edit' => 'Modify NAT',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										95
									
								
								lib.php
								
								
								
								
							
							
						
						
									
										95
									
								
								lib.php
								
								
								
								
							| 
						 | 
					@ -30,7 +30,7 @@ define ('ACT_PASSWORD',    14);
 | 
				
			||||||
// ========== GLOBAL PAGE START CODE ==========================================
 | 
					// ========== GLOBAL PAGE START CODE ==========================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// global version string
 | 
					// global version string
 | 
				
			||||||
$config_version = 'v0.9';
 | 
					$config_version = 'v0.9.1';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// available languages
 | 
					// available languages
 | 
				
			||||||
$config_lang = array('de', 'en');
 | 
					$config_lang = array('de', 'en');
 | 
				
			||||||
| 
						 | 
					@ -60,6 +60,42 @@ $g_error = new MessageError;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$action = ACT_DEFAULT;
 | 
					$action = ACT_DEFAULT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ========== LANGUAGE FUNCTIONS ==============================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function lang_getfrombrowser($allowed, $default) {
 | 
				
			||||||
 | 
					    // get browser most preferred language if possible
 | 
				
			||||||
 | 
					    if (empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
 | 
				
			||||||
 | 
					        return $default;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    $accepted = preg_split('/,\s*/', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
 | 
				
			||||||
 | 
					    $current_lang = $default;
 | 
				
			||||||
 | 
					    $current_q = 0;
 | 
				
			||||||
 | 
					    foreach ($accepted as $lang) {
 | 
				
			||||||
 | 
					        $res = preg_match ('/^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i',
 | 
				
			||||||
 | 
					                   $lang, $matches);
 | 
				
			||||||
 | 
					        if (!$res) {
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        $lang_code = explode ('-', $matches[1]);
 | 
				
			||||||
 | 
					        if (isset($matches[2])) {
 | 
				
			||||||
 | 
					            $lang_quality = (float)$matches[2];
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            $lang_quality = 1.0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        while (count($lang_code)) {
 | 
				
			||||||
 | 
					            if (in_array(strtolower(join ('-', $lang_code)), $allowed)) {
 | 
				
			||||||
 | 
					                if ($lang_quality > $current_q) {
 | 
				
			||||||
 | 
					                    $current_lang = strtolower (join ('-', $lang_code));
 | 
				
			||||||
 | 
					                    $current_q = $lang_quality;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            array_pop($lang_code);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return $current_lang;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ========== FEEDBACK FUNCTIONS ==============================================
 | 
					// ========== FEEDBACK FUNCTIONS ==============================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Message {
 | 
					class Message {
 | 
				
			||||||
| 
						 | 
					@ -136,6 +172,13 @@ class MessageError extends Message {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function msgout(array $parameters, Smarty_Internal_Template $smarty) {
 | 
				
			||||||
 | 
					    // This is just a quick hack around missing {php} in Smarty3
 | 
				
			||||||
 | 
					    $GLOBALS['g_error']->PrintOut();
 | 
				
			||||||
 | 
					    $GLOBALS['g_warning']->PrintOut();
 | 
				
			||||||
 | 
					    $GLOBALS['g_message']->PrintOut();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ========== FORM FUNCTIONS ==================================================
 | 
					// ========== FORM FUNCTIONS ==================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function form_get_action() {
 | 
					function form_get_action() {
 | 
				
			||||||
| 
						 | 
					@ -159,7 +202,7 @@ function submit_error($action) {
 | 
				
			||||||
       function by default. An exit() is conscious here *not* installed,
 | 
					       function by default. An exit() is conscious here *not* installed,
 | 
				
			||||||
       since it could be that despite such an error the program
 | 
					       since it could be that despite such an error the program
 | 
				
			||||||
       execution should be continued. */
 | 
					       execution should be continued. */
 | 
				
			||||||
    return sprintf('The action "%s" is unknown. It is probably a program error.<br /> Please inform your administrator of the exact circumstances of how this situation came about.', strtoupper($action));
 | 
					    return sprintf('The action "%s" is unknown. It is probably a program error.<br> Please inform your administrator of the exact circumstances of how this situation came about.', strtoupper($action));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ========== DATABASE FUCTIONS ===============================================
 | 
					// ========== DATABASE FUCTIONS ===============================================
 | 
				
			||||||
| 
						 | 
					@ -261,3 +304,51 @@ function db_get_options_zone($default = NULL) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return $options;
 | 
					    return $options;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ========== MISC FUCTIONS ===================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function strip_mac($mac, $caps=true) {
 | 
				
			||||||
 | 
					    // strip mac address to 12 char string
 | 
				
			||||||
 | 
					    // strip chars we don't need
 | 
				
			||||||
 | 
					    $mac = preg_replace('/[^a-fA-F0-9]/', '', $mac);
 | 
				
			||||||
 | 
					    if ($caps) {
 | 
				
			||||||
 | 
					        $mac = strtoupper($mac);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        $mac = strtolower($mac);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return $mac;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function write_mac($mac, $user_mac='xx:xx:xx:xx:xx:xx') {
 | 
				
			||||||
 | 
					    // rebuild mac address using user supplied format
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (strlen($mac) != 12) {
 | 
				
			||||||
 | 
					        // if the MAC is empty, or for whatever reason incorrect, just return
 | 
				
			||||||
 | 
					        return $mac;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // check format of user mac: count upper or lower char
 | 
				
			||||||
 | 
					    $chars = count_chars($user_mac, 1);
 | 
				
			||||||
 | 
					    if (array_key_exists(88, $chars) and $chars[88] == 12) {
 | 
				
			||||||
 | 
					        $pattern = '/X/';
 | 
				
			||||||
 | 
					        $mac = strtoupper($mac);
 | 
				
			||||||
 | 
					    } elseif (array_key_exists(120, $chars) and $chars[120] == 12) {
 | 
				
			||||||
 | 
					        $pattern = '/x/';
 | 
				
			||||||
 | 
					        $mac = strtolower($mac);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        // invalid format
 | 
				
			||||||
 | 
					        return $mac;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for($i=0; $i<12; $i++) {
 | 
				
			||||||
 | 
					        $user_mac = preg_replace($pattern, $mac[$i], $user_mac, 1);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return $user_mac;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function header_location($location) {
 | 
				
			||||||
 | 
					    // redirect page
 | 
				
			||||||
 | 
					    header('location:' . $location);
 | 
				
			||||||
 | 
					    exit;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,52 +7,6 @@ Copyright (C) 2011-2023 Thomas Hooge
 | 
				
			||||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
					SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
*****************************************************************************/
 | 
					*****************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function strip_mac($mac, $caps=true) {
 | 
					 | 
				
			||||||
    // strip mac address to 12 char string
 | 
					 | 
				
			||||||
    // strip chars we don't need
 | 
					 | 
				
			||||||
    $mac = preg_replace('/[^a-fA-F0-9]/', '', $mac);
 | 
					 | 
				
			||||||
    if ($caps) {
 | 
					 | 
				
			||||||
        $mac = strtoupper($mac);
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        $mac = strtolower($mac);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return $mac;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function write_mac($mac, $user_mac='xx:xx:xx:xx:xx:xx') {
 | 
					 | 
				
			||||||
    // rebuild mac address using user supplied format
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (strlen($mac) != 12) {
 | 
					 | 
				
			||||||
        // if the MAC is empty, or for whatever reason incorrect, just return
 | 
					 | 
				
			||||||
        return $mac;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // check format of user mac: count upper or lower char
 | 
					 | 
				
			||||||
    $chars = count_chars($user_mac, 1);
 | 
					 | 
				
			||||||
    if (array_key_exists(88, $chars) and $chars[88] == 12) {
 | 
					 | 
				
			||||||
        $pattern = '/X/';
 | 
					 | 
				
			||||||
        $mac = strtoupper($mac);
 | 
					 | 
				
			||||||
    } elseif (array_key_exists(120, $chars) and $chars[120] == 12) {
 | 
					 | 
				
			||||||
        $pattern = '/x/';
 | 
					 | 
				
			||||||
        $mac = strtolower($mac);
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        // invalid format
 | 
					 | 
				
			||||||
        return $mac;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for($i=0; $i<12; $i++) {
 | 
					 | 
				
			||||||
        $user_mac = preg_replace($pattern, $mac[$i], $user_mac, 1);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return $user_mac;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function header_location($location) {
 | 
					 | 
				
			||||||
    // redirect page
 | 
					 | 
				
			||||||
    header('location:' . $location);
 | 
					 | 
				
			||||||
    exit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// sanitize input
 | 
					// sanitize input
 | 
				
			||||||
function sanitize($input) {
 | 
					function sanitize($input) {
 | 
				
			||||||
    global $dblink;
 | 
					    global $dblink;
 | 
				
			||||||
| 
						 | 
					@ -76,49 +30,13 @@ function sanitize($input) {
 | 
				
			||||||
    return $input;
 | 
					    return $input;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function lang_getfrombrowser ($allowed_languages, $default_language, $lang_variable = null, $strict_mode = true) {
 | 
					 | 
				
			||||||
    if ($lang_variable === null) {
 | 
					 | 
				
			||||||
        $lang_variable = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (empty($lang_variable)) {
 | 
					 | 
				
			||||||
        return $default_language;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    $accepted_languages = preg_split('/,\s*/', $lang_variable);
 | 
					 | 
				
			||||||
    $current_lang = $default_language;
 | 
					 | 
				
			||||||
    $current_q = 0;
 | 
					 | 
				
			||||||
    foreach ($accepted_languages as $accepted_language) {
 | 
					 | 
				
			||||||
        $res = preg_match ('/^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i',
 | 
					 | 
				
			||||||
                   $accepted_language, $matches);
 | 
					 | 
				
			||||||
        if (!$res) {
 | 
					 | 
				
			||||||
            continue;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        $lang_code = explode ('-', $matches[1]);
 | 
					 | 
				
			||||||
        if (isset($matches[2])) {
 | 
					 | 
				
			||||||
            $lang_quality = (float)$matches[2];
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            $lang_quality = 1.0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        while (count ($lang_code)) {
 | 
					 | 
				
			||||||
            if (in_array (strtolower (join ('-', $lang_code)), $allowed_languages)) {
 | 
					 | 
				
			||||||
                if ($lang_quality > $current_q) {
 | 
					 | 
				
			||||||
                    $current_lang = strtolower (join ('-', $lang_code));
 | 
					 | 
				
			||||||
                    $current_q = $lang_quality;
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if ($strict_mode) {
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            array_pop ($lang_code);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return $current_lang;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function print_tree_rec($tree, $level) {
 | 
					function print_tree_rec($tree, $level) {
 | 
				
			||||||
    $output = '<ul class="treelvl' . $level. '">' . "\n";
 | 
					    $output = '<ul class="treelvl' . $level. '">' . "\n";
 | 
				
			||||||
    foreach ($tree as $node) {
 | 
					    foreach ($tree as $node) {
 | 
				
			||||||
        $output .= '<li><a href="' . $node['href'] . '">' . $node['value'] . '</a>';
 | 
					        $output .= '<li><a href="' . $node['href'] . '">' . $node['value'] . '</a>';
 | 
				
			||||||
 | 
					        if ($node['info']) {
 | 
				
			||||||
 | 
					            $output .= ' - ' . $node['info'];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if ($node['children']) {
 | 
					        if ($node['children']) {
 | 
				
			||||||
            $output .= "\n" . print_tree_rec($node['children'], $level+1);
 | 
					            $output .= "\n" . print_tree_rec($node['children'], $level+1);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -141,9 +59,3 @@ function print_tree($params, Smarty_Internal_Template $template) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function msgout(array $parameters, Smarty_Internal_Template $smarty) {
 | 
					 | 
				
			||||||
    // This is just a quick hack around missing {php} in Smarty3
 | 
					 | 
				
			||||||
    $GLOBALS['g_error']->PrintOut();
 | 
					 | 
				
			||||||
    $GLOBALS['g_warning']->PrintOut();
 | 
					 | 
				
			||||||
    $GLOBALS['g_message']->PrintOut();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -142,7 +142,8 @@ include("header.php");
 | 
				
			||||||
if ($action == ACT_DEFAULT):
 | 
					if ($action == ACT_DEFAULT):
 | 
				
			||||||
// ========== VARIANT: default behavior =======================================
 | 
					// ========== VARIANT: default behavior =======================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$sql = "SELECT location_id AS id, location_name AS value, location_parent AS parent_id
 | 
					$sql = "SELECT location_id AS id, location_name AS value, location_parent AS parent_id,
 | 
				
			||||||
 | 
					            CONCAT(LEFT(location_info,40), IF(CHAR_LENGTH(location_info)>40,'...','')) AS info
 | 
				
			||||||
        FROM location
 | 
					        FROM location
 | 
				
			||||||
        ORDER BY location_parent, location_sort, location_name";
 | 
					        ORDER BY location_parent, location_sort, location_name";
 | 
				
			||||||
$sth = $dbh->query($sql);
 | 
					$sth = $dbh->query($sql);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -136,6 +136,7 @@ function user_login ($user_name, $user_pass) {
 | 
				
			||||||
    $_SESSION['suser_menu_cables'] = in_array('cable', $menu);
 | 
					    $_SESSION['suser_menu_cables'] = in_array('cable', $menu);
 | 
				
			||||||
    $_SESSION['suser_menu_locations'] = in_array('location', $menu);
 | 
					    $_SESSION['suser_menu_locations'] = in_array('location', $menu);
 | 
				
			||||||
    $_SESSION['suser_menu_nodes'] = in_array('node', $menu);
 | 
					    $_SESSION['suser_menu_nodes'] = in_array('node', $menu);
 | 
				
			||||||
 | 
					    $_SESSION['suser_menu_nats'] = in_array('nat', $menu);
 | 
				
			||||||
    $_SESSION['suser_menu_subnets'] = in_array('subnet', $menu);
 | 
					    $_SESSION['suser_menu_subnets'] = in_array('subnet', $menu);
 | 
				
			||||||
    $_SESSION['suser_menu_vlans'] = in_array('vlan', $menu);
 | 
					    $_SESSION['suser_menu_vlans'] = in_array('vlan', $menu);
 | 
				
			||||||
    $_SESSION['suser_menu_zones'] = in_array('zone', $menu);
 | 
					    $_SESSION['suser_menu_zones'] = in_array('zone', $menu);
 | 
				
			||||||
| 
						 | 
					@ -147,7 +148,7 @@ function user_login ($user_name, $user_pass) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ========== LOGIN: HERE BE DRAGONS ==========================================
 | 
					// ========== LOGIN: HERE BE DRAGONS ==========================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$language = lang_getfrombrowser($config_lang, $config_lang_default, null, false);
 | 
					$language = lang_getfrombrowser($config_lang, $config_lang_default);
 | 
				
			||||||
include('lang/' . $language . '.php');
 | 
					include('lang/' . $language . '.php');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ($_SERVER['REQUEST_METHOD'] == "POST" ) {
 | 
					if ($_SERVER['REQUEST_METHOD'] == "POST" ) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										20
									
								
								options.php
								
								
								
								
							
							
						
						
									
										20
									
								
								options.php
								
								
								
								
							| 
						 | 
					@ -34,6 +34,7 @@ switch ($submit = form_get_action()) {
 | 
				
			||||||
        $menu_cables = sanitize($_POST['user_menu_cables']);
 | 
					        $menu_cables = sanitize($_POST['user_menu_cables']);
 | 
				
			||||||
        $menu_locations = sanitize($_POST['user_menu_locations']);
 | 
					        $menu_locations = sanitize($_POST['user_menu_locations']);
 | 
				
			||||||
        $menu_nodes = sanitize($_POST['user_menu_nodes']);
 | 
					        $menu_nodes = sanitize($_POST['user_menu_nodes']);
 | 
				
			||||||
 | 
					        $menu_nats = sanitize($_POST['user_menu_nats']);
 | 
				
			||||||
        $menu_subnets = sanitize($_POST['user_menu_subnets']);
 | 
					        $menu_subnets = sanitize($_POST['user_menu_subnets']);
 | 
				
			||||||
        $menu_vlans = sanitize($_POST['user_menu_vlans']);
 | 
					        $menu_vlans = sanitize($_POST['user_menu_vlans']);
 | 
				
			||||||
        $menu_zones = sanitize($_POST['user_menu_zones']);
 | 
					        $menu_zones = sanitize($_POST['user_menu_zones']);
 | 
				
			||||||
| 
						 | 
					@ -46,6 +47,7 @@ switch ($submit = form_get_action()) {
 | 
				
			||||||
        if ($menu_cables) $menu[] = 'cable';
 | 
					        if ($menu_cables) $menu[] = 'cable';
 | 
				
			||||||
        if ($menu_locations) $menu[] = 'location';
 | 
					        if ($menu_locations) $menu[] = 'location';
 | 
				
			||||||
        if ($menu_nodes) $menu[] = 'node';
 | 
					        if ($menu_nodes) $menu[] = 'node';
 | 
				
			||||||
 | 
					        if ($menu_nats) $menu[] = 'nat';
 | 
				
			||||||
        if ($menu_subnets) $menu[] = 'subnet';
 | 
					        if ($menu_subnets) $menu[] = 'subnet';
 | 
				
			||||||
        if ($menu_vlans) $menu[] = 'vlan';
 | 
					        if ($menu_vlans) $menu[] = 'vlan';
 | 
				
			||||||
        if ($menu_zones) $menu[] = 'zone';
 | 
					        if ($menu_zones) $menu[] = 'zone';
 | 
				
			||||||
| 
						 | 
					@ -76,6 +78,7 @@ switch ($submit = form_get_action()) {
 | 
				
			||||||
        $_SESSION['suser_menu_cables'] = $menu_cables;
 | 
					        $_SESSION['suser_menu_cables'] = $menu_cables;
 | 
				
			||||||
        $_SESSION['suser_menu_locations'] = $menu_locations;
 | 
					        $_SESSION['suser_menu_locations'] = $menu_locations;
 | 
				
			||||||
        $_SESSION['suser_menu_nodes'] = $menu_nodes;
 | 
					        $_SESSION['suser_menu_nodes'] = $menu_nodes;
 | 
				
			||||||
 | 
					        $_SESSION['suser_menu_nats'] = $menu_nats;
 | 
				
			||||||
        $_SESSION['suser_menu_subnets'] = $menu_subnets;
 | 
					        $_SESSION['suser_menu_subnets'] = $menu_subnets;
 | 
				
			||||||
        $_SESSION['suser_menu_vlans'] = $menu_vlans;
 | 
					        $_SESSION['suser_menu_vlans'] = $menu_vlans;
 | 
				
			||||||
        $_SESSION['suser_menu_zones'] = $menu_zones;
 | 
					        $_SESSION['suser_menu_zones'] = $menu_zones;
 | 
				
			||||||
| 
						 | 
					@ -133,7 +136,15 @@ $smarty->display("options.tpl");
 | 
				
			||||||
elseif ($action == ACT_EDIT):
 | 
					elseif ($action == ACT_EDIT):
 | 
				
			||||||
// ========== VARIANT: edit display options ===================================
 | 
					// ========== VARIANT: edit display options ===================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$smarty->assign("language", $language);
 | 
					$smarty->assign("language", lang_getfrombrowser($config_lang, $config_lang_default));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// available languages
 | 
				
			||||||
 | 
					$lang_options = array();
 | 
				
			||||||
 | 
					foreach ($config_lang as $lang) {
 | 
				
			||||||
 | 
					    $lang_options[$lang] = $lang;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					$smarty->assign("lang_options", $lang_options);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if($_SESSION['suser_menu_assets']=='on') {
 | 
					if($_SESSION['suser_menu_assets']=='on') {
 | 
				
			||||||
	$user_menu_assets_checked = 'checked';
 | 
						$user_menu_assets_checked = 'checked';
 | 
				
			||||||
| 
						 | 
					@ -170,6 +181,12 @@ if($_SESSION['suser_menu_nodes']=='on') {
 | 
				
			||||||
} else {
 | 
					} else {
 | 
				
			||||||
	$user_menu_nodes_checked = '';
 | 
						$user_menu_nodes_checked = '';
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// nats
 | 
				
			||||||
 | 
					if($_SESSION['suser_menu_nats']=='on') {
 | 
				
			||||||
 | 
						$user_menu_nats_checked = 'checked';
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
						$user_menu_nats_checked = '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// subnets
 | 
					// subnets
 | 
				
			||||||
if($_SESSION['suser_menu_subnets']=='on') {
 | 
					if($_SESSION['suser_menu_subnets']=='on') {
 | 
				
			||||||
	$user_menu_subnets_checked = 'checked';
 | 
						$user_menu_subnets_checked = 'checked';
 | 
				
			||||||
| 
						 | 
					@ -209,6 +226,7 @@ $smarty->assign("user_menu_assetclassgroups_checked", $user_menu_assetclassgroup
 | 
				
			||||||
$smarty->assign("user_menu_cables_checked", $user_menu_cables_checked);
 | 
					$smarty->assign("user_menu_cables_checked", $user_menu_cables_checked);
 | 
				
			||||||
$smarty->assign("user_menu_locations_checked", $user_menu_locations_checked);
 | 
					$smarty->assign("user_menu_locations_checked", $user_menu_locations_checked);
 | 
				
			||||||
$smarty->assign("user_menu_nodes_checked", $user_menu_nodes_checked);
 | 
					$smarty->assign("user_menu_nodes_checked", $user_menu_nodes_checked);
 | 
				
			||||||
 | 
					$smarty->assign("user_menu_nats_checked", $user_menu_nats_checked);
 | 
				
			||||||
$smarty->assign("user_menu_subnets_checked", $user_menu_subnets_checked);
 | 
					$smarty->assign("user_menu_subnets_checked", $user_menu_subnets_checked);
 | 
				
			||||||
$smarty->assign("user_menu_vlans_checked", $user_menu_vlans_checked);
 | 
					$smarty->assign("user_menu_vlans_checked", $user_menu_vlans_checked);
 | 
				
			||||||
$smarty->assign("user_menu_zones_checked", $user_menu_zones_checked);
 | 
					$smarty->assign("user_menu_zones_checked", $user_menu_zones_checked);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
{foreach item=letter from=$alphabet}
 | 
					{foreach item=letter from=$alphabet}
 | 
				
			||||||
    <td>
 | 
					    <td>
 | 
				
			||||||
        <a href="asset.php?asset_letter={$letter.asset_letter}">{$letter.asset_letter}</a> 
 | 
					        <a href="asset.php?bst={$letter.bst}">{$letter.bst}</a> 
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
{/foreach}
 | 
					{/foreach}
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,13 +47,13 @@
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
    <td class="label">
 | 
					    <td class="label">
 | 
				
			||||||
{if $role_add}
 | 
					{if $role_add}
 | 
				
			||||||
        <img src="images/page_add.png" alt="[Add]">  {$lang_user_role_add} <br>
 | 
					        <img src="images/add.png" alt="[Add]"> {$lang_user_role_add}<br>
 | 
				
			||||||
{/if}
 | 
					{/if}
 | 
				
			||||||
{if $role_edit}
 | 
					{if $role_edit}
 | 
				
			||||||
        <img src="images/page_edit.png" alt="[Edit]">  {$lang_user_role_edit} <br>
 | 
					        <img src="images/edit.png" alt="[Edit]"> {$lang_user_role_edit}<br>
 | 
				
			||||||
{/if}
 | 
					{/if}
 | 
				
			||||||
{if $role_edit}
 | 
					{if $role_edit}
 | 
				
			||||||
        <img src="images/page_delete.png" alt="[Del]">  {$lang_user_role_delete} <br>
 | 
					        <img src="images/delete.png" alt="[Del]"> {$lang_user_role_delete}<br>
 | 
				
			||||||
{/if}
 | 
					{/if}
 | 
				
			||||||
{if $role_manage}
 | 
					{if $role_manage}
 | 
				
			||||||
        <img src="images/manage.png" alt="[Manage]"> {$lang_user_role_manage}<br>
 | 
					        <img src="images/manage.png" alt="[Manage]"> {$lang_user_role_manage}<br>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,7 @@
 | 
				
			||||||
        <span class="help" title="{$lang_options_language_help}">{$lang_user_language}</span>
 | 
					        <span class="help" title="{$lang_options_language_help}">{$lang_user_language}</span>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
    <td class="value">
 | 
					    <td class="value">
 | 
				
			||||||
        <input type="text" name="user_language" value="{$user_language}" size="2">
 | 
					        {html_options name=user_language  options=$lang_options selected={$user_language}}
 | 
				
			||||||
        ({$language})
 | 
					        ({$language})
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
| 
						 | 
					@ -53,6 +53,7 @@
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
    <td class="value">
 | 
					    <td class="value">
 | 
				
			||||||
        <input type="text" name="user_mac" value="{$user_mac}">
 | 
					        <input type="text" name="user_mac" value="{$user_mac}">
 | 
				
			||||||
 | 
					        (xx:xx:xx:xx:xx:xx)
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
| 
						 | 
					@ -92,6 +93,9 @@
 | 
				
			||||||
{/if}
 | 
					{/if}
 | 
				
			||||||
        <input type="checkbox" name="user_menu_locations" {$user_menu_locations_checked}>{$lang_locations}<br />
 | 
					        <input type="checkbox" name="user_menu_locations" {$user_menu_locations_checked}>{$lang_locations}<br />
 | 
				
			||||||
        <input type="checkbox" name="user_menu_nodes" {$user_menu_nodes_checked}>{$lang_nodes}<br />
 | 
					        <input type="checkbox" name="user_menu_nodes" {$user_menu_nodes_checked}>{$lang_nodes}<br />
 | 
				
			||||||
 | 
					{if $suser_admin}
 | 
				
			||||||
 | 
					        <input type="checkbox" name="user_menu_nats" {$user_menu_nats_checked}>{$lang_nats}<br />
 | 
				
			||||||
 | 
					{/if}
 | 
				
			||||||
        <input type="checkbox" name="user_menu_subnets" {$user_menu_subnets_checked}>{$lang_subnets}<br />
 | 
					        <input type="checkbox" name="user_menu_subnets" {$user_menu_subnets_checked}>{$lang_subnets}<br />
 | 
				
			||||||
        <input type="checkbox" name="user_menu_vlans" {$user_menu_vlans_checked}>{$lang_vlans}<br />
 | 
					        <input type="checkbox" name="user_menu_vlans" {$user_menu_vlans_checked}>{$lang_vlans}<br />
 | 
				
			||||||
        <input type="checkbox" name="user_menu_zones" {$user_menu_zones_checked}>{$lang_zones}
 | 
					        <input type="checkbox" name="user_menu_zones" {$user_menu_zones_checked}>{$lang_zones}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								user.php
								
								
								
								
							
							
						
						
									
										1
									
								
								user.php
								
								
								
								
							| 
						 | 
					@ -156,6 +156,7 @@ $user = $sth->fetch(PDO::FETCH_OBJ);
 | 
				
			||||||
$user->role = explode(',', $user->role);
 | 
					$user->role = explode(',', $user->role);
 | 
				
			||||||
$smarty->assign("user", $user);
 | 
					$smarty->assign("user", $user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// auth realms
 | 
					// auth realms
 | 
				
			||||||
$smarty->assign("realm_ids", ['local', 'ldap']);
 | 
					$smarty->assign("realm_ids", ['local', 'ldap']);
 | 
				
			||||||
$smarty->assign("realm_names", ['Local', 'LDAP']);
 | 
					$smarty->assign("realm_names", ['Local', 'LDAP']);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue