X-Git-Url: https://git.infodrom.org/?p=misc%2Fkostenrechnung;a=blobdiff_plain;f=lib%2Fgeneral.php;h=837a4b8a807222931fa55f7821d19d3a603d3990;hp=215eee4aa80475a4f8660e490676d708c30ea8a1;hb=deaf08b6e3fc5c35d139b83db7f4951f4685eb30;hpb=a9aed8568cb901a9000ffe0bf387783eb2c3b01a diff --git a/lib/general.php b/lib/general.php index 215eee4..837a4b8 100644 --- a/lib/general.php +++ b/lib/general.php @@ -1,16 +1,111 @@ 'No permission to access data')); + } + + /* table connections */ + if (substr($_SERVER["SCRIPT_FILENAME"],-25) == '/ricoUpdateConnection.php' && + !empty($_GET['id']) && substr($_GET['id'],0,5) == 'grid_') { + if (check_permissions(substr($_GET['id'],5))) + return true; + else + format_ajax(array('error' => 'No permission to access data')); + } + + /* ajax calls */ + if (substr($_SERVER["SCRIPT_FILENAME"],-9) == '/ajax.php' && + !empty($_POST['source'])) { + if (check_permissions($_POST['source'])) + return true; + else + format_ajax(array('error' => 'No permission to access data')); + } + +} + function sanitise_filename($file) { return str_replace('./','x',$file); } -function load_mask($name, $prefix = '') +function load_mask($name) { global $mask; + global $jscode; $name = sanitise_filename($name); - $file = $prefix . 'masks/' . $name . '.php'; + $file = $_SESSION['sys']['basedir'] . 'masks/' . $name . '.php'; if (!file_exists($file)) return false; @@ -26,6 +121,19 @@ function connect_db() pg_connect($dsn); } +function query_db($sql) +{ + $sth = pg_query($sql); + + if ($sth === false) return false; + + $result = array(); + while ($row = pg_fetch_assoc($sth)) + $result[] = $row; + + return $result; +} + function load_js($jsfiles, $jscode) { $ret = ''; @@ -40,17 +148,17 @@ function load_js($jsfiles, $jscode) function process() { + if (!empty($_GET['login'])) { + require_once('lib/login.php'); + return mask_login(); + } + if (!empty($_GET['mask'])) { require_once('lib/mask.php'); return mask($_GET['mask']); } - $masks = array('sys_user','sys_group','sys_mask', - 'anbaugeraete','arbeitsarten','personal','materialien','gebiet','geraete', - 'kostenstellen','materialverbrauch','einsatz'); - $ret = ''; - foreach ($masks as $m) - $ret .= sprintf('%s
', $m, $m); + $ret = '
Willkommen in der Kostenrechnung der Friesoyther Wasseracht!
'; return $ret; } @@ -79,4 +187,20 @@ function debug_info() return $html; } +function grid_sql($name, $mask) +{ + $fields = array(); + foreach ($mask['list'] as $field => $data) { + if (array_key_exists('sql', $data)) + $fields[] = $data['sql'] . ' AS ' . $field; + else + $fields[] = $field; + } + + $_SESSION['grid_' . $name] = sprintf("SELECT %s FROM %s", + implode(',', $fields), $mask['table']); + if (array_key_exists('join', $mask)) $_SESSION['grid_' . $name] .= ' JOIN ' . join(' JOIN ', $mask['join']); + if (array_key_exists('where', $mask)) $_SESSION['grid_' . $name] .= ' WHERE ' . $mask['where']; +} + ?>