Optional additional security roles inscludable from modules/extensions.
[fa-stable.git] / admin / security_roles.php
index e0aaab9a15504b3da19d5028f93d99a72930f899..a6792f863da9417508b390388a1879c5bc5a19c7 100644 (file)
@@ -9,10 +9,12 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-$page_security = 20;
-$path_to_root="..";
+$page_security = 'SA_SECROLES';
+$path_to_root = "..";
 include_once($path_to_root . "/includes/session.inc");
 
+add_access_extensions();
+
 page(_("Access setup"));
 
 include_once($path_to_root . "/includes/ui.inc");
@@ -49,24 +51,24 @@ if (get_post('addupdate'))
        
        if ($input_error == 0)
        {
-               $modules = array();
+               $sections = array();
                $areas = array();
                foreach($_POST as $p =>$val) {
                        if (substr($p,0,4) == 'Area')
                                $areas[] = substr($p, 4);
-                       if (substr($p,0,6) == 'Module')
-                               $modules[] = substr($p, 6);
+                       if (substr($p,0,7) == 'Section')
+                               $sections[] = substr($p, 7);
                }
                sort($areas);
-               sort($modules);
+               sort($sections);
        if ($new_role) 
                {
-                       add_security_role($_POST['name'], $_POST['description'], $modules, $areas); 
+                       add_security_role($_POST['name'], $_POST['description'], $sections, $areas); 
                        display_notification(_("New security role has been added."));
                } else
                {
                        update_security_role($_POST['role'], $_POST['name'], $_POST['description'], 
-                               $modules, $areas); 
+                               $sections, $areas); 
                        update_record_status($_POST['role'], get_post('inactive'),
                                'security_roles', 'id');
 
@@ -101,7 +103,8 @@ if (get_post('cancel'))
 if (!isset($_POST['role']) || get_post('clone') || list_updated('role')) {
        $id = get_post('role');
        $clone = get_post('clone');
-       clear_data();
+//     clear_data();
+       unset($_POST);
        if ($id) {
                $row = get_security_role($id);
                $_POST['description'] = $row['description'];
@@ -111,15 +114,15 @@ if (!isset($_POST['role']) || get_post('clone') || list_updated('role')) {
        
                $_POST['inactive'] = $row['inactive'];
                $access = $row['areas'];
-               $modules = $row['modules'];
+               $sections = $row['sections'];
        }
        else {
                $_POST['description'] = $_POST['name'] = '';
                unset($_POST['inactive']);
-               $access = $modules = array();
+               $access = $sections = array();
        }
        foreach($access as $a) $_POST['Area'.$a] = 1;
-       foreach($modules as $m) $_POST['Module'.$m] = 1;
+       foreach($sections as $s) $_POST['Section'.$s] = 1;
 
        if($clone) {
                set_focus('name');
@@ -135,7 +138,7 @@ start_form();
 start_table("class='tablestyle_noborder'");
 start_row();
 security_roles_list_cells(_("Role:"). "&nbsp;", 'role', null, true, true, check_value('show_inactive'));
-//$new_role = get_post('role')=='';
+$new_role = get_post('role')=='';
 check_cells(_("Show inactive:"), 'show_inactive', null, true);
 end_row();
 end_table();
@@ -145,7 +148,7 @@ if (get_post('_show_inactive_update')) {
        $Ajax->activate('role');
        set_focus('role');
 }
-if (find_submit('_Module')) {
+if (find_submit('_Section')) {
        $Ajax->activate('details');
 //     set_focus('');
 }
@@ -157,39 +160,43 @@ start_table($table_style2);
        record_status_list_row(_("Current status:"), 'inactive');
 end_table(1);
 
-       start_table("$table_style width=50%");
+       start_table("$table_style width=40%");
 
        $k = $j = 0; //row colour counter
        $m = 0;
-               foreach($security_areas as $area =>$descr ) {
-            if (($area&~0xff) != $m)
-            { // features set selection
-               $m = $area & ~0xff;
-                               label_row(sprintf(_("%s features:"), $security_modules[$m]), 
-                                       checkbox( null, 'Module'.$m, null, true, 
-                                               _("Set access to security features area")),
-                               "class='tableheader2'", "class='tableheader'");
-            }
-               if (check_value('Module'.$m)) {
+       asort($security_areas); // in the case installed external modules has added some lines
+       foreach($security_areas as $area =>$parms ) {
+               if (($parms[0]&~0xff) != $m)
+               { // features set selection
+                       $m = $parms[0] & ~0xff;
+                       label_row($security_sections[$m].':', 
+                               checkbox( null, 'Section'.$m, null, true, 
+                                       _("On/off set of features")),
+                       "class='tableheader2'", "class='tableheader'");
+               }
+               if (check_value('Section'.$m)) {
                                alt_table_row_color($k);
-                               check_cells($descr, 'Area'.$area, null, 
+                               check_cells($parms[1], 'Area'.$parms[0], null, 
                                        false, '', "align='center'");
-                       end_row();
-               } else {
-                       hidden('Area'.$area);
-               }
-        }
+                       end_row();
+               } else {
+                       hidden('Area'.$parms[0]);
+               }
+       }
        end_table(1);
 div_end();
 
 div_start('controls');
+
 if ($new_role) 
 {
-       submit_center('addupdate', _("Insert New Role"), true, '', 'default');
+       submit_center_first('Update', _("Update view"), '', null);
+       submit_center_last('addupdate', _("Insert New Role"), '', 'default');
 } 
 else 
 {
-       submit_center_first('addupdate', _("Update Role"), '', 'default');
+       submit_center_first('addupdate', _("Save Role"), '', 'default');
+       submit('Update', _("Update view"), true, '', null);
        submit('clone', _("Clone This Role"), true, '', true);
        submit('delete', _("Delete This Role"), true, '', true);
        submit_center_last('cancel', _("Cancel"), _("Cancel Edition"), 'cancel');