fstuurman wrote on Wednesday, February 10, 2010:
I have specified:
$GLOBALS = true;
When I login as administrator I don’t see the “Inventory” menu item on the left side.
I had a look at script interface/main/left_nav.php and removed from line 885:
&& acl_check('admin', 'drugs')
and then it shows the menu item.
Line 885 has this coding:
<?php if ($GLOBALS['inhouse_pharmacy'] && acl_check('admin', 'drugs')) genMiscLink('RTop','adm','0',xl('Inventory'),'drugs/drug_inventory.php'); ?
>
I have a default installation , the acl_check meganism looks rather complicated.
I did print the queries from it and then I get this:
SELECT a.id,a.allow,a.return_value FROM gacl_acl a LEFT JOIN gacl_aco_map ac ON ac.acl_id=a.id LEFT JOIN gacl_aro_map ar ON ar.acl_id=a.id LEFT JOIN gacl_axo_map ax ON ax.acl_id=a.id LEFT JOIN gacl_aro_groups_map arg ON arg.acl_id=a.id LEFT JOIN gacl_aro_groups rg ON rg.id=arg.group_id LEFT JOIN gacl_axo_groups_map axg ON axg.acl_id=a.id WHERE a.enabled=1 AND (ac.section_value='admin' AND ac.value='calendar') AND ((ar.section_value='users' AND ar.value='admin') OR rg.id IN (10,11)) AND ((ax.section_value IS NULL AND ax.value IS NULL) AND axg.group_id IS NULL) ORDER BY (CASE WHEN ar.value IS NULL THEN 0 ELSE 1 END) DESC,(rg.rgt-rg.lft) ASC,a.updated_date DESC
SELECT a.id,a.allow,a.return_value FROM gacl_acl a LEFT JOIN gacl_aco_map ac ON ac.acl_id=a.id LEFT JOIN gacl_aro_map ar ON ar.acl_id=a.id LEFT JOIN gacl_axo_map ax ON ax.acl_id=a.id LEFT JOIN gacl_aro_groups_map arg ON arg.acl_id=a.id LEFT JOIN gacl_aro_groups rg ON rg.id=arg.group_id LEFT JOIN gacl_axo_groups_map axg ON axg.acl_id=a.id WHERE a.enabled=1 AND (ac.section_value='acct' AND ac.value='rep') AND ((ar.section_value='users' AND ar.value='admin') OR rg.id IN (10,11)) AND ((ax.section_value IS NULL AND ax.value IS NULL) AND axg.group_id IS NULL) ORDER BY (CASE WHEN ar.value IS NULL THEN 0 ELSE 1 END) DESC,(rg.rgt-rg.lft) ASC,a.updated_date DESC
SELECT a.id,a.allow,a.return_value FROM gacl_acl a LEFT JOIN gacl_aco_map ac ON ac.acl_id=a.id LEFT JOIN gacl_aro_map ar ON ar.acl_id=a.id LEFT JOIN gacl_axo_map ax ON ax.acl_id=a.id LEFT JOIN gacl_aro_groups_map arg ON arg.acl_id=a.id LEFT JOIN gacl_aro_groups rg ON rg.id=arg.group_id LEFT JOIN gacl_axo_groups_map axg ON axg.acl_id=a.id WHERE a.enabled=1 AND (ac.section_value='patients' AND ac.value='demo') AND ((ar.section_value='users' AND ar.value='admin') OR rg.id IN (10,11)) AND ((ax.section_value IS NULL AND ax.value IS NULL) AND axg.group_id IS NULL) ORDER BY (CASE WHEN ar.value IS NULL THEN 0 ELSE 1 END) DESC,(rg.rgt-rg.lft) ASC,a.updated_date DESC
SELECT a.id,a.allow,a.return_value FROM gacl_acl a LEFT JOIN gacl_aco_map ac ON ac.acl_id=a.id LEFT JOIN gacl_aro_map ar ON ar.acl_id=a.id LEFT JOIN gacl_axo_map ax ON ax.acl_id=a.id LEFT JOIN gacl_aro_groups_map arg ON arg.acl_id=a.id LEFT JOIN gacl_aro_groups rg ON rg.id=arg.group_id LEFT JOIN gacl_axo_groups_map axg ON axg.acl_id=a.id WHERE a.enabled=1 AND (ac.section_value='encounters' AND ac.value='notes') AND ((ar.section_value='users' AND ar.value='admin') OR rg.id IN (10,11)) AND ((ax.section_value IS NULL AND ax.value IS NULL) AND axg.group_id IS NULL) ORDER BY (CASE WHEN ar.value IS NULL THEN 0 ELSE 1 END) DESC,(rg.rgt-rg.lft) ASC,a.updated_date DESC
SELECT a.id,a.allow,a.return_value FROM gacl_acl a LEFT JOIN gacl_aco_map ac ON ac.acl_id=a.id LEFT JOIN gacl_aro_map ar ON ar.acl_id=a.id LEFT JOIN gacl_axo_map ax ON ax.acl_id=a.id LEFT JOIN gacl_aro_groups_map arg ON arg.acl_id=a.id LEFT JOIN gacl_aro_groups rg ON rg.id=arg.group_id LEFT JOIN gacl_axo_groups_map axg ON axg.acl_id=a.id WHERE a.enabled=1 AND (ac.section_value='encounters' AND ac.value='notes_a') AND ((ar.section_value='users' AND ar.value='admin') OR rg.id IN (10,11)) AND ((ax.section_value IS NULL AND ax.value IS NULL) AND axg.group_id IS NULL) ORDER BY (CASE WHEN ar.value IS NULL THEN 0 ELSE 1 END) DESC,(rg.rgt-rg.lft) ASC,a.updated_date DESC
SELECT a.id,a.allow,a.return_value FROM gacl_acl a LEFT JOIN gacl_aco_map ac ON ac.acl_id=a.id LEFT JOIN gacl_aro_map ar ON ar.acl_id=a.id LEFT JOIN gacl_axo_map ax ON ax.acl_id=a.id LEFT JOIN gacl_aro_groups_map arg ON arg.acl_id=a.id LEFT JOIN gacl_aro_groups rg ON rg.id=arg.group_id LEFT JOIN gacl_axo_groups_map axg ON axg.acl_id=a.id WHERE a.enabled=1 AND (ac.section_value='patients' AND ac.value='med') AND ((ar.section_value='users' AND ar.value='admin') OR rg.id IN (10,11)) AND ((ax.section_value IS NULL AND ax.value IS NULL) AND axg.group_id IS NULL) ORDER BY (CASE WHEN ar.value IS NULL THEN 0 ELSE 1 END) DESC,(rg.rgt-rg.lft) ASC,a.updated_date DESC
SELECT a.id,a.allow,a.return_value FROM gacl_acl a LEFT JOIN gacl_aco_map ac ON ac.acl_id=a.id LEFT JOIN gacl_aro_map ar ON ar.acl_id=a.id LEFT JOIN gacl_axo_map ax ON ax.acl_id=a.id LEFT JOIN gacl_aro_groups_map arg ON arg.acl_id=a.id LEFT JOIN gacl_aro_groups rg ON rg.id=arg.group_id LEFT JOIN gacl_axo_groups_map axg ON axg.acl_id=a.id WHERE a.enabled=1 AND (ac.section_value='patients' AND ac.value='med') AND ((ar.section_value='users' AND ar.value='admin') OR rg.id IN (10,11)) AND ((ax.section_value IS NULL AND ax.value IS NULL) AND axg.group_id IS NULL) ORDER BY (CASE WHEN ar.value IS NULL THEN 0 ELSE 1 END) DESC,(rg.rgt-rg.lft) ASC,a.updated_date DESC
I don not see the the check for the “drug” in it.
Is this a bug?
Kind regards Fred Stuurman