X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fcurrent_user.inc;h=e393252d72cb4c7302443f4a077d2ceeb3b8a116;hb=aac0d5aae41709ca3a890e1bd064163a0d5f53d6;hp=7c99f233a3fbb9a1e464955ba9ae6af2ec0b77cf;hpb=f8f29c33f36dda542da9ad33fdfcf6849fcd9a1d;p=fa-stable.git diff --git a/includes/current_user.inc b/includes/current_user.inc index 7c99f233..e393252d 100644 --- a/includes/current_user.inc +++ b/includes/current_user.inc @@ -18,7 +18,7 @@ if (!defined('TB_PREF')) { class current_user { - var $user; + var $user = 0; var $loginname; var $username; var $name; @@ -58,8 +58,8 @@ class current_user function login($company, $loginname, $password) { - global $security_areas, $security_groups, $security_headings, $path_to_root; - + global $security_areas, $security_groups, $security_headings, $path_to_root, $login_delay; + $this->set_company($company); $this->logged = false; @@ -73,6 +73,9 @@ class current_user if (!isset($Auth_Result)) // if not used: standard method $Auth_Result = get_user_auth($loginname, md5($password)); + if ($login_delay > 0) + write_login_filelog($loginname, $Auth_Result); + if ($Auth_Result) { $myrow = get_user_by_login($loginname); @@ -161,6 +164,74 @@ class current_user return $this->can_access($page_level); } + function check_application_access($waapp) + { + if (!$this->hide_inaccessible_menu_items()) + { + return true; + } + + foreach ($waapp->modules as $module) + { + if ($this->check_module_access($module)) + { + return true; + } + } + + return false; + + } + + function check_module_access($module) + { + + if (!$this->hide_inaccessible_menu_items()) + { + return true; + } + + if (sizeof($module->lappfunctions) > 0) + { + foreach ($module->lappfunctions as $appfunction) + { + if ($appfunction->label != "" && $this->can_access_page($appfunction->access)) + { + return true; + } + } + } + + if (sizeof($module->rappfunctions) > 0) + { + foreach ($module->rappfunctions as $appfunction) + { + if ($appfunction->label != "" && $this->can_access_page($appfunction->access)) + { + return true; + } + } + } + + return false; + + } + + function hide_inaccessible_menu_items() + { + global $hide_inaccessible_menu_items; + + if (!isset($hide_inaccessible_menu_items) || $hide_inaccessible_menu_items == 0) + { + return false; + } + + else + { + return true; + } + } + function set_db_connection($id = -1) { return set_global_connection($id); @@ -210,6 +281,20 @@ function number_format2($number, $decimals=0) return $decimals==='max' ? rtrim($num, '0') : $num; } + +/* price/float comparision helper to be used in any suspicious place for zero values? +usage: +if (!floatcmp($value1, $value2)) + compare value is 0 +*/ + +define('FLOAT_COMP_DELTA', 0.004); + +function floatcmp($a, $b) +{ + return $a - $b > FLOAT_COMP_DELTA ? 1 : ($b - $a > FLOAT_COMP_DELTA ? -1 : 0); +} + // // Current ui mode. // @@ -555,4 +640,5 @@ function company_path($comp=null) . '/'.$comp; } + ?> \ No newline at end of file