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));
24 $sth = pg_query($sql);
26 if ($sth === false) return false;
28 $row = pg_fetch_assoc($sth);
29 if ($row === false) return false;
31 if ($row['count'] == 0)
37 function check_session()
39 if (!empty($_SESSION['sys']['login']) && !empty($_GET['logout'])) {
41 header('Location: ./?login=true');
45 if (substr($_SERVER["SCRIPT_FILENAME"],-10) == '/index.php' &&
46 !empty($_POST['login']) && !empty($_POST['passwd'])) {
47 require_once('lib/login.php');
49 header('Location: ./');
54 if (empty($_SESSION['sys']['login']) && empty($_GET['login'])) {
55 header('Location: ./?login=true');
60 if (!empty($_GET['mask'])) {
61 if (check_permissions($_GET['mask']))
64 header('Location: ./');
70 if (substr($_SERVER["SCRIPT_FILENAME"],-17) == '/ricoXMLquery.php' &&
71 !empty($_GET['id']) && substr($_GET['id'],0,5) == 'grid_') {
72 if (check_permissions(substr($_GET['id'],5)))
75 format_ajax(array('error' => 'No permission to access data'));
78 /* table connections */
79 if (substr($_SERVER["SCRIPT_FILENAME"],-25) == '/ricoUpdateConnection.php' &&
80 !empty($_POST['table'])) {
81 if (check_permissions($_POST['table']))
84 format_ajax(array('error' => 'No permission to access data'));
88 if (substr($_SERVER["SCRIPT_FILENAME"],-9) == '/ajax.php' &&
89 !empty($_POST['source'])) {
90 if (check_permissions(substr($_POST['source'],5)))
93 format_ajax(array('error' => 'No permission to access data'));
98 function sanitise_filename($file)
100 return str_replace('./','x',$file);
103 function load_mask($name)
108 $name = sanitise_filename($name);
109 $file = $_SESSION['sys']['basedir'] . 'masks/' . $name . '.php';
111 if (!file_exists($file))
119 function connect_db()
121 $dsn = sprintf('host=%s dbname=%s user=%s password=%s',DBHOST,DBNAME,DBUSER,DBPASS);
125 function query_db($sql)
127 $sth = pg_query($sql);
129 if ($sth === false) return false;
132 while ($row = pg_fetch_assoc($sth))
138 function load_js($jsfiles, $jscode)
141 foreach ($jsfiles as $file)
142 $ret .= sprintf('<script type="text/javascript" src="%s"></script>'."\n", $file);
145 $ret .= sprintf('<script type="text/javascript">'."\n%s\n</script>\n", implode("\n",$jscode));
152 if (!empty($_GET['login'])) {
153 require_once('lib/login.php');
157 if (!empty($_GET['mask'])) {
158 require_once('lib/mask.php');
159 return mask($_GET['mask']);
162 $masks = array('sys_user','sys_group','sys_mask',
163 'anbaugeraete','arbeitsarten','personal','materialien','gebiet','geraete',
164 'kostenstellen','materialverbrauch','einsatz');
166 foreach ($masks as $m)
167 $ret .= sprintf('<a href="index.php?mask=%s">%s</a><br>', $m, $m);
172 function debug_log($text)
176 $debug_info .= '<br>' . $text;
179 function debug_info()
184 if (DEBUG !== true) return '';
186 $jsfiles[] = 'lib/debug_joey.js';
188 $html = '<div style="background: #DDD; margin: 5px; padding-left: 4px; border: 1px solid #AAA;clear:both;">';
189 $html .= "\n<pre>\n\$_SESSION = " . var_export($_SESSION,true) . "\n";
190 $html .= "\n\$_COOKIE = " . var_export($_COOKIE,true) . "\n</pre>\n";
191 $html .= $debug_info;
196 function grid_sql($name, $mask)
199 foreach ($mask['list'] as $field => $data) {
200 if (array_key_exists('sql', $data))
201 $fields[] = $data['sql'] . ' AS ' . $field;
206 $_SESSION['grid_' . $name] = sprintf("SELECT %s FROM %s",
207 implode(',', $fields), $mask['table']);
208 if (array_key_exists('join', $mask)) $_SESSION['grid_' . $name] .= ' JOIN ' . join(' JOIN ', $mask['join']);
209 if (array_key_exists('where', $mask)) $_SESSION['grid_' . $name] .= ' WHERE ' . $mask['where'];