aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/www/include/share/session/base.php
diff options
context:
space:
mode:
Diffstat (limited to 'mayor-orig/www/include/share/session/base.php')
-rw-r--r--mayor-orig/www/include/share/session/base.php171
1 files changed, 171 insertions, 0 deletions
diff --git a/mayor-orig/www/include/share/session/base.php b/mayor-orig/www/include/share/session/base.php
new file mode 100644
index 00000000..706a9ef9
--- /dev/null
+++ b/mayor-orig/www/include/share/session/base.php
@@ -0,0 +1,171 @@
+<?php
+/*
+ Module: base/session
+ Megjegyzés: a base-ből minden oldalletöltésnél betöltődik
+*/
+ define('_ADMIN_ACCESS', 0);
+ define('_SELF_ACCESS', 1);
+ define('_OTHER_ACCESS', 2);
+
+ $AUTH['my']['categories'] = getAccountCategories(_USERACCOUNT, _POLICY); // a függvény itt deklarált
+
+ ######################################################
+ # Az aktuális policy backend-jének alapvető session-kezelése. Csatoljuk be, vagy üzenjünk hibát
+ ######################################################
+
+ if (file_exists('include/backend/'.$AUTH[_POLICY]['backend'].'/session/base.php'))
+ require_once('include/backend/'.$AUTH[_POLICY]['backend'].'/session/base.php');
+ else
+ $_SESSION['alert'][] = 'page:file_not_found:'.'include/backend/'.$AUTH[_POLICY]['backend'].'/session/base.php';
+
+/* Függvények */
+
+/*
+ function memberOf($userAccount, $group, $toPolicy = _POLICY)
+
+ a függvény becsatolja a backend-nek megfelelő modul filet és használja a [backend]MemberOf() függvényt
+
+ function getAccountCategories($userAccount = '', $toPolicy = _POLICY)
+
+ a függvény lekérdezi a policy globális configfilejában megadott lehető kategóriákba userAccount bele tartozik-e
+ használja: memberOf()
+
+
+ --
+ function getBackendAttrs($type = 'Account', $toPolicy = _POLICY)
+ function getFailedLoginCount($uid, $sinceDt, $lr='')
+ function getLastLoginDt($uid, $lr='')
+*/
+
+######################################################
+# memberOf - csoport tag-e - session modul
+######################################################
+
+ function memberOf($userAccount, $group, $toPolicy = _POLICY) {
+
+ global $AUTH;
+
+ if ($AUTH[$toPolicy]['cacheable']=='yes' && $userAccount == _USERACCOUNT) {
+ $r = _queryCache('mOf:'.$group,$toPolicy,'value');
+ if (!is_null($r)) {
+ if ($r=='1') $return = true;
+ elseif ($r=='0') $return = false;
+ }
+ }
+
+ if (is_null($return)) {
+ require_once('include/backend/'.$AUTH[$toPolicy]['backend'].'/session/base.php');
+ $func = $AUTH[$toPolicy]['backend'].'MemberOf';
+ $return = $func($userAccount, $group, $toPolicy);
+
+ if ($AUTH[$toPolicy]['cacheable']=='yes' && $userAccount == _USERACCOUNT)
+ _registerToCache('mOf:'.$group, (($return == true) ? '1':'0'), $toPolicy);
+ }
+
+ return $return;
+
+ }
+
+######################################################
+# getCategories - felhasználó besorolása(i) - session modul
+######################################################
+ function getAccountCategories($userAccount = '', $toPolicy = _POLICY) {
+
+ global $AUTH;
+
+ if ($userAccount == '') $userAccount = _USERACCOUNT;
+
+ if ($AUTH[$toPolicy]['cacheable']=='yes' && $userAccount == _USERACCOUNT) {
+ $cacheable = true;
+ _maintainCache();
+ $r = _queryCache('aCat', $toPolicy);
+ for ($i=0; $i<count($r); $i++) { // valójában csak egy érték lehet, de azért bent hagyjuk a ciklust
+ $_eArr[] = $r[$i]['ertek'];
+ $_eArr = explode(';',$r[$i]['ertek']);
+ if (is_array($_eArr)) $return = $_eArr;
+ else $return[] = $_eArr;
+ }
+ } else $cacheable = false;
+ if (count($r)>0) return $return;
+ else {
+ $return = array();
+ if (is_array($AUTH[$toPolicy]['categories']))
+ foreach ($AUTH[$toPolicy]['categories'] as $key => $category) {
+ if (memberOf($userAccount, $category, $toPolicy)) {
+ $return[] = $category;
+ }
+ if ($cacheable) _registerToCache('aCat',implode(';',$return),$toPolicy); // ha több csoport tagja is, ";"
+ }
+ return $return;
+ }
+ }
+
+ function _queryCache($kulcs, $policy, $rType="indexed") {
+ $v = array(_SESSIONID,$kulcs,$policy);
+ return db_query("SELECT `ertek` FROM `cache` WHERE sessionID='%s' AND dt>NOW() - INTERVAL 5 MINUTE AND `kulcs`='%s' AND policy='%s'", array('fv' => 'getAccountCategories', 'modul' => 'login', 'result' => $rType, 'values'=>$v));
+ }
+
+ function _registerToCache($kulcs,$ertek,$policy) {
+ $v = array(_SESSIONID,$policy,$kulcs,$ertek);
+ db_query("REPLACE INTO `cache` (sessionID,policy,kulcs,ertek,dt) VALUES ('%s','%s','%s','%s',NOW())", array('fv' => 'cache', 'modul' => 'login', 'result' => 'indexed', 'values'=>$v));
+ }
+
+ function _maintainCache() {
+ $q = "DELETE FROM `cache` WHERE dt<NOW() - INTERVAL 5 MINUTE";
+ db_query($q, array('fv' => 'cache', 'modul' => 'login', 'result' => 'indexed', 'values'=>$v));
+ }
+
+
+
+
+
+######################################################
+# getBackendAttrs - az adott policy backend-jéhez tartozó attribútumok - session modul
+######################################################
+
+ function getBackendAttrs($type = 'Account', $toPolicy = _POLICY) {
+
+ global $AUTH;
+ require_once('include/backend/'.$AUTH[$toPolicy]['backend'].'/session/base.php');
+
+ global $AUTH;
+ $attrArrayName = $AUTH[$toPolicy]['backend'].$type.'AttrDef';
+ global $$attrArrayName;
+ $backendAttrDef = $$attrArrayName;
+
+ // Válogassuk ki az olvasható attribútumokat
+ reset($backendAttrDef);
+ foreach ($backendAttrDef as $attr => $def) {
+
+ if (!isset($def['rights']) || $def['rights'] == '') {
+ $rigths = _DEFAULT_LDAP_RIGHTS; //LDAP???
+ $backendAttrDef[$attr]['rights'] = $rights;
+ } else $rights = $def['rights'];
+
+ if ($rights[_ACCESS_AS] != '-') $attrList[] = $attr;
+
+ }
+ return array($attrList,$backendAttrDef);
+
+ }
+
+######################################################################
+# Utolsó bejelentkezés dátuma
+######################################################################
+
+ function getLastLoginDt($toPolicy, $userAccount=_USERACCOUNT, $lr = null) {
+ $q = "SELECT dt FROM loginLog WHERE policy='%s' AND userAccount='%s' AND flag=0 ORDER BY dt DESC LIMIT 1";
+ return db_query($q , array('fv' => 'getLastLoginDt', 'modul' => 'login', 'result' => 'value', 'values' => array($toPolicy,$userAccount)), $lr);
+ }
+
+######################################################################
+# Hibás bejelentkezések száma, a legutolsó sikeres bejelentkezés óta
+######################################################################
+
+ function getFailedLoginCount($toPolicy, $userAccount=_USERACCOUNT, $lr = null) {
+ if ($sinceDt == '') $sinceDt = getLastLoginDt($toPolicy, $userAccount, $lr);
+ $q = "SELECT COUNT(*) AS db FROM loginLog WHERE policy='%s' AND userAccount='%s' AND dt>'%s' AND flag>0";
+ return db_query($q , array('fv' => 'getFailedLoginCount', 'modul' => 'login', 'result' => 'value', 'values' => array($toPolicy, $userAccount, $sinceDt)), $lr);
+ }
+
+?>