Ignore:
Timestamp:
09/05/07 11:18:58 (17 years ago)
Author:
niltonneto
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/inc/class.bomanagers.inc.php

    r63 r64  
    2626                        } 
    2727                         
    28                         //Recebe valores do POST 
    29                         $manager = array( 
    30                         'lid'                                           => $_POST['manager_lid'], 
    31                         'context'                                       => $_POST['context'], 
    32                          
    33                         'add_users'                                     => $_POST['add_users'], 
    34                         'edit_users'                            => $_POST['edit_users'], 
    35                         'delete_users'                          => $_POST['delete_users'], 
    36                         'rename_users'                          => $_POST['rename_users'], 
    37                         'view_users'                            => $_POST['view_users'], 
    38                         'manipulate_corporative_information' => $_POST['manipulate_corporative_information'], 
    39                         'add_groups'                            => $_POST['add_groups'], 
    40                         'edit_groups'                           => $_POST['edit_groups'], 
    41                         'delete_groups'                         => $_POST['delete_groups'], 
    42                         'edit_email_groups'                     => $_POST['edit_email_groups'], 
    43                         'change_users_password'         => $_POST['change_users_password'], 
    44                         'change_users_quote'            => $_POST['change_users_quote'], 
    45                         'set_user_default_password'     => $_POST['set_user_default_password'], 
    46                         'empty_user_inbox'                      => $_POST['empty_user_inbox'], 
    47                         'edit_sambausers_attributes'=> $_POST['edit_sambausers_attributes'], 
    48                         'edit_sambadomains'                     => $_POST['edit_sambadomains'], 
    49                         'add_email_lists'                       => $_POST['add_maillists'], 
    50                         'edit_email_lists'                      => $_POST['edit_maillists'], 
    51                         'delete_email_lists'            => $_POST['delete_maillists'],                   
    52                         'create_sectors'                        => $_POST['create_sectors'], 
    53                         'edit_sectors'                          => $_POST['edit_sectors'], 
    54                         'delete_sectors'                        => $_POST['delete_sectors'], 
    55                         'view_global_sessions'          => $_POST['view_global_sessions'], 
    56                         'view_logs'                                     => $_POST['view_logs'], 
    57                         'create_computers'                      => $_POST['create_computers'], 
    58                         'edit_computers'                        => $_POST['edit_computers'], 
    59                         'delete_computers'                      => $_POST['delete_computers'], 
    60                                          
    61                         'apps'                                          => $_POST['applications_list'] 
    62                         ); 
    63                          
    64                         // Soma os niveis de acesso criando uma ACL 
    65                         $acl = 0; 
    66                         $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'] + $manager['manipulate_corporative_information']; 
    67                         $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups']; 
    68                         $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'] + $manager['empty_user_inbox']; 
    69                         $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 
    70                         $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; 
    71                         $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions']; 
    72                         $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; 
    73                         $acl = $acl + $manager['view_logs']; 
    74  
    75                         //Escrevre no Banco 
     28                        //Escrevre no Banco a ACL do gerente 
    7629                        $sql = "INSERT INTO phpgw_expressoadmin (manager_lid, context, acl) " 
    77                         . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $acl . "')"; 
     30                        . "VALUES('" . $_POST['manager_lid'] . "','" . $_POST['context'] . "','" . $this->make_manager_acl($_POST) . "')"; 
    7831                        $GLOBALS['phpgw']->db->query($sql); 
    7932                         
    8033                        //Escrevre no Banco as aplicações que o gerente tem direito de disponibilizar aos seus usuarios. 
    81                         foreach($manager['apps'] as $app=>$value) 
     34                        foreach($_POST['applications_list'] as $app=>$value) 
    8235                        { 
    8336                                $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) " 
    84                                 . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')"; 
     37                                . "VALUES('" . $_POST['manager_lid'] . "','" . $_POST['context'] . "','" . $app . "')"; 
    8538                                $GLOBALS['phpgw']->db->query($sql); 
    8639                        } 
     
    9952                                return False; 
    10053                        } 
    101  
    102                         //recebe valores do POST 
    103                         $manager = array( 
    104                         'old_lid'                                       => $_POST['old_manager_lid'], 
    105                         'old_context'                           => $_POST['old_context'], 
    106                         'lid'                                           => $_POST['manager_lid'], 
    107                         'context'                                       => $_POST['context'], 
    10854                         
    109                         'add_users'                                     => $_POST['add_users'], 
    110                         'edit_users'                            => $_POST['edit_users'], 
    111                         'delete_users'                          => $_POST['delete_users'], 
    112                         'rename_users'                          => $_POST['rename_users'], 
    113                         'view_users'                            => $_POST['view_users'], 
    114                         'manipulate_corporative_information' => $_POST['manipulate_corporative_information'], 
    115                         'add_groups'                            => $_POST['add_groups'], 
    116                         'edit_groups'                           => $_POST['edit_groups'], 
    117                         'delete_groups'                         => $_POST['delete_groups'], 
    118                         'edit_email_groups'                     => $_POST['edit_email_groups'],                  
    119                         'change_users_password'         => $_POST['change_users_password'], 
    120                         'change_users_quote'            => $_POST['change_users_quote'], 
    121                         'set_user_default_password'     => $_POST['set_user_default_password'], 
    122                         'empty_user_inbox'                      => $_POST['empty_user_inbox'], 
    123                         'edit_sambausers_attributes'=> $_POST['edit_sambausers_attributes'], 
    124                         'edit_sambadomains'                     => $_POST['edit_sambadomains'], 
    125                         'add_email_lists'                       => $_POST['add_maillists'], 
    126                         'edit_email_lists'                      => $_POST['edit_maillists'], 
    127                         'delete_email_lists'            => $_POST['delete_maillists'], 
    128                         'create_sectors'                        => $_POST['create_sectors'], 
    129                         'edit_sectors'                          => $_POST['edit_sectors'], 
    130                         'delete_sectors'                        => $_POST['delete_sectors'], 
    131                         'view_global_sessions'          => $_POST['view_global_sessions'], 
    132                         'view_logs'                                     => $_POST['view_logs'], 
    133                         'create_computers'                      => $_POST['create_computers'], 
    134                         'edit_computers'                        => $_POST['edit_computers'], 
    135                         'delete_computers'                      => $_POST['delete_computers'], 
     55                        //Executa update na tabela para atualizar ACL 
     56                        $sql = "UPDATE phpgw_expressoadmin SET manager_lid = '".$_POST['manager_lid'] 
     57                        . "',context = '".$_POST['context'] 
     58                        . "',acl = '" . $this->make_manager_acl($_POST) 
     59                        . "' WHERE manager_lid = '" . $_POST['old_manager_lid']."' AND context = '" . $_POST['old_context'] ."'"; 
     60                        $GLOBALS['phpgw']->db->query($sql); 
    13661                         
    137                         'apps'                                          => $_POST['applications_list'] 
    138                         ); 
    139                          
    140                         // Soma os niveis de acesso criando uma ACL 
    141                         $acl = 0; 
    142                         $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'] + $manager['manipulate_corporative_information']; 
    143                         $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups']; 
    144                         $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'] + $manager['empty_user_inbox']; 
    145                         $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 
    146                         $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; 
    147                         $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions']; 
    148                         $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; 
    149                         $acl = $acl + $manager['view_logs']; 
    150                          
    151                         //Executa update na tabela 
    152                         $sql = "UPDATE phpgw_expressoadmin SET manager_lid = '".$manager['lid'] 
    153                         . "',context = '".$manager['context'] 
    154                         . "',acl = '".$acl 
    155                         . "' WHERE manager_lid = '".$manager['old_lid']."' AND context = '" . $manager['old_context'] ."'"; 
    156                         $GLOBALS['phpgw']->db->query($sql); 
    15762                         
    15863                        //Deleta as aplicações e adiciona as novas. 
    15964                        //Deleta 
    16065                        $sql = "DELETE FROM phpgw_expressoadmin_apps WHERE " 
    161                         . "manager_lid = '".$manager['old_lid']."' AND " 
    162                         . "context = '".$manager['old_context']."'"; 
    163                         $GLOBALS['phpgw']->db->query($sql);              
     66                        . "manager_lid = '" . $_POST['old_manager_lid']."' AND " 
     67                        . "context = '" . $_POST['old_context']."'"; 
     68                        $GLOBALS['phpgw']->db->query($sql); 
     69                                         
    16470                        // Adiciona 
    165                         if (count($manager['apps'])) 
     71                        if (count($_POST['applications_list'])) 
    16672                        { 
    167                                 foreach($manager['apps'] as $app=>$value) 
     73                                foreach($_POST['applications_list'] as $app=>$value) 
    16874                                { 
    16975                                        $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) " 
    170                                         . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')"; 
     76                                        . "VALUES('" . $_POST['manager_lid'] . "','" . $_POST['context'] . "','" . $app . "')"; 
    17177                                        $GLOBALS['phpgw']->db->query($sql); 
    17278                                } 
     
    17682                        ExecMethod('expressoAdmin1_2.uimanagers.list_managers'); 
    17783                        return True; 
    178                 }                
     84                } 
     85                 
     86                function make_manager_acl($array_post) 
     87                { 
     88                        $total_manager_acl = 0; 
     89                        foreach ($array_post as $atribute=>$value) 
     90                        { 
     91                                $acl  = strstr($atribute, 'acl_'); 
     92 
     93                                if ($acl !== false) 
     94                                { 
     95                                        $total_manager_acl += $value; 
     96                                } 
     97                        } 
     98                        return $total_manager_acl; 
     99                } 
    179100        } 
    180101?> 
Note: See TracChangeset for help on using the changeset viewer.