X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Faccess_levels.inc;h=fc3d48df8e4e4b87d3ef9521e7301e749c9cb823;hb=d1babda7c01b314d35fb89f2d195553b55936532;hp=bb84a10a7c66f76ede184deb1b5b00b3d67446c3;hpb=cef4b4de401511a4195b7b8ad04b47bec1895b20;p=fa-stable.git diff --git a/includes/access_levels.inc b/includes/access_levels.inc index bb84a10a..fc3d48df 100644 --- a/includes/access_levels.inc +++ b/includes/access_levels.inc @@ -66,7 +66,7 @@ $security_sections = array( SS_ITEMS => _("Inventory operations"), SS_ITEMS_A => _("Inventory analytics"), SS_MANUF_C => _("Manufacturing configuration"), - SS_MANUF => _("Manufacturing transations"), + SS_MANUF => _("Manufacturing transactions"), SS_MANUF_A => _("Manufacturing analytics"), SS_DIM_C => _("Dimensions configuration"), SS_DIM => _("Dimensions"), @@ -118,9 +118,9 @@ $security_areas =array( 'SA_BACKUP' => array(SS_SPEC|2, _("Database backup/restore")), 'SA_VIEWPRINTTRANSACTION' => array(SS_SPEC|3, _("Common view/print transactions interface")), 'SA_ATTACHDOCUMENT' => array(SS_SPEC|4, _("Attaching documents")), - 'SA_SETUPDISPLAY' => array(SS_SPEC|5, _("Display preferences")), //??? - 'SA_CHGPASSWD' => array(SS_SPEC|6, _("Password changes")), //??? - + 'SA_SETUPDISPLAY' => array(SS_SPEC|5, _("Display preferences")), + 'SA_CHGPASSWD' => array(SS_SPEC|6, _("Password changes")), + 'SA_EDITOTHERSTRANS' => array(SS_SPEC|7, _("Edit other users transactions")), // // Sales related functionality // @@ -227,6 +227,8 @@ $security_areas =array( 'SA_FISCALYEARS' => array(SS_GL_C|9, _("Fiscal years maintenance")), 'SA_GLSETUP' => array(SS_GL_C|10, _("Company GL setup")), 'SA_GLACCOUNTTAGS' => array(SS_GL_C|11, _("GL Account tags")), + 'SA_GLCLOSE' => array(SS_GL_C|14, _("Closing GL transactions")), + 'SA_GLREOPEN' => array(SS_GL_C|15, _("Reopening GL transactions")), // see below 'SA_MULTIFISCALYEARS' => array(SS_GL_C|13, _("Allow entry on non closed Fiscal years")), 'SA_BANKTRANSVIEW' => array(SS_GL|1, _("Bank transactions view")), @@ -240,12 +242,16 @@ $security_areas =array( 'SA_BANKJOURNAL' => array(SS_GL|11, _("Journal entries to bank related accounts")), 'SA_BUDGETENTRY' => array(SS_GL|9, _("Budget edition")), 'SA_STANDARDCOST' => array(SS_GL|10, _("Item standard costs")), + 'SA_ACCRUALS' => array(SS_GL|12, _("Revenue / Cost Accruals")), 'SA_GLANALYTIC' => array(SS_GL_A|1, _("GL analytical reports and inquiries")), 'SA_TAXREP' => array(SS_GL_A|2, _("Tax reports and inquiries")), 'SA_BANKREP' => array(SS_GL_A|3, _("Bank reports and inquiries")), 'SA_GLREP' => array(SS_GL_A|4, _("GL reports and inquiries")), ); + +if (!@$SysPrefs->allow_gl_reopen) + unset($security_areas['SA_GLREOPEN']); /* This function should be called whenever we want to extend core access level system with new security areas and/or sections i.e.: @@ -259,9 +265,11 @@ function add_access_extensions() global $security_areas, $security_sections, $installed_extensions; foreach($installed_extensions as $extid => $ext) { + $accext = hook_invoke($ext['package'], 'install_access', $dummy); + if ($accext == null) continue; + $scode = 100; $acode = 100; - $accext = get_access_extensions($extid); $extsections = $accext[1]; $extareas = $accext[0]; $extcode = $extid<<16; @@ -292,6 +300,7 @@ function add_access_extensions() /* Helper function to retrieve extension access definitions in isolated environment. */ +/* function get_access_extensions($id) { global $path_to_root, $installed_extensions; @@ -300,9 +309,44 @@ function get_access_extensions($id) { $security_sections = $security_areas = array(); if (isset($ext['acc_file'])) - include($path_to_root.'/'.$ext['path'].'/'.$ext['acc_file']); + include_once($path_to_root.'/'.$ext['path'].'/'.$ext['acc_file']); return array($security_areas, $security_sections); } +*/ + +function check_edit_access($name) +{ + global $input_security; + + $access = @$input_security[$name]; + + if (!$access) + $access = @$input_security['']; // default access level + + if (!$access) + return true; // if constraint is not defined edit access is allowed + + return user_check_access($access); +} +/* + Returns POST value or null if edit access to $name control is forbidden. +*/ +function access_post($name, $dflt=null) +{ + if (!check_edit_access($name)) + return $dflt; + else + return get_post($name, $dflt); +} -?> \ No newline at end of file +/* + Returns numeric input value or null if edit access to $name control is forbidden. +*/ +function access_num($name, $dflt=null) +{ + if (!check_edit_access($name)) + return $dflt; + else + return input_num($name, $dflt); +}