3 function passwd($login,$pass)
5 return md5(md5($pass).$login);
8 function format_ajax($data)
10 header('Content-type: application/json; charset=UTF-8');
11 echo json_encode($data);
15 function check_permissions($name)
17 $sql = sprintf("SELECT count(*) AS count FROM sys_mask "
18 . "JOIN sys_menu ON sys_mask.menu = sys_menu.id "
19 . "JOIN sys_group_mask ON sys_mask.id = sys_group_mask.mask "
20 . "WHERE sys_group_mask.gid = %d AND fname = '%s'",
21 $_SESSION['sys']['group'], pg_escape_string($name));
23 $sth = pg_query($sql);
25 if ($sth === false) return false;
27 $row = pg_fetch_assoc($sth);
28 if ($row === false) return false;
30 if ($row['count'] == 0)
36 function check_session()
38 if (!empty($_SESSION['sys']['login']) && !empty($_GET['logout'])) {
40 header('Location: ./?login=true');
44 if (substr($_SERVER["SCRIPT_FILENAME"],-10) == '/index.php' &&
45 !empty($_POST['login']) && !empty($_POST['passwd'])) {
46 require_once('lib/login.php');
48 header('Location: ./');
53 if (empty($_SESSION['sys']['login']) && empty($_GET['login'])) {
54 header('Location: ./?login=true');
59 if (!empty($_GET['mask'])) {
60 if (check_permissions($_GET['mask']))
63 header('Location: ./');
69 if (substr($_SERVER["SCRIPT_FILENAME"],-17) == '/ricoXMLquery.php' &&
70 !empty($_GET['id']) && substr($_GET['id'],0,5) == 'grid_') {
71 if (check_permissions(substr($_GET['id'],5)))
74 format_ajax(array('error' => 'No permission to access data'));
77 /* table connections */
78 if (substr($_SERVER["SCRIPT_FILENAME"],-25) == '/ricoUpdateConnection.php' &&
79 !empty($_GET['id']) && substr($_GET['id'],0,5) == 'grid_') {
80 if (check_permissions(substr($_GET['id'],5)))
83 format_ajax(array('error' => 'No permission to access data'));
87 if (substr($_SERVER["SCRIPT_FILENAME"],-9) == '/ajax.php' &&
88 !empty($_POST['source'])) {
89 if (check_permissions($_POST['source']))
92 format_ajax(array('error' => 'No permission to access data'));
97 function sanitise_filename($file)
99 return str_replace('./','x',$file);
102 function load_mask($name)
107 $name = sanitise_filename($name);
108 $file = $_SESSION['sys']['basedir'] . 'masks/' . $name . '.php';
110 if (!file_exists($file))
118 function connect_db()
120 $dsn = sprintf('host=%s dbname=%s user=%s password=%s',DBHOST,DBNAME,DBUSER,DBPASS);
124 function query_db($sql)
126 $sth = pg_query($sql);
128 if ($sth === false) return false;
131 while ($row = pg_fetch_assoc($sth))
137 function load_js($jsfiles, $jscode)
140 foreach ($jsfiles as $file)
141 $ret .= sprintf('<script type="text/javascript" src="%s"></script>'."\n", $file);
144 $ret .= sprintf('<script type="text/javascript">'."\n%s\n</script>\n", implode("\n",$jscode));
151 if (!empty($_GET['login'])) {
152 require_once('lib/login.php');
156 if (!empty($_GET['mask'])) {
157 require_once('lib/mask.php');
158 return mask($_GET['mask']);
161 $ret = '<div style="height: 600px; font-size: large; font-weight: bold;">Willkommen in der Kostenrechnung der Friesoyther Wasseracht!</div>';
166 function debug_log($text)
170 $debug_info .= '<br>' . $text;
173 function debug_info()
178 if (DEBUG !== true) return '';
180 $jsfiles[] = 'lib/debug_joey.js';
182 $html = '<div style="background: #DDD; margin: 5px; padding-left: 4px; border: 1px solid #AAA;clear:both;">';
183 $html .= "\n<pre>\n\$_SESSION = " . var_export($_SESSION,true) . "\n";
184 $html .= "\n\$_COOKIE = " . var_export($_COOKIE,true) . "\n</pre>\n";
185 $html .= $debug_info;
190 function grid_sql_join($mask)
192 if (array_key_exists('join', $mask)) {
193 return ' JOIN ' . join(' JOIN ', $mask['join']);
198 function grid_sql($name, $mask)
201 foreach ($mask['list'] as $field => $data) {
202 if (array_key_exists('sql', $data))
203 $fields[] = $data['sql'] . ' AS ' . $field;
208 $_SESSION['grid_' . $name] = sprintf("SELECT %s FROM %s",
209 implode(',', $fields), $mask['table']);
210 if (array_key_exists('join', $mask)) $_SESSION['grid_' . $name] .= grid_sql_join($mask);
211 if (array_key_exists('where', $mask)) $_SESSION['grid_' . $name] .= ' WHERE ' . $mask['where'];