source: companies/serpro/expressoAdmin1_2/inc/class.bomanagers.inc.php @ 903

Revision 903, 7.9 KB checked in by niltonneto, 15 years ago (diff)

Importacao inicial do Expresso do Serpro

Line 
1<?
2        /***********************************************************************************\
3        * Expresso Administração                                                                                                   *
4        * by Joao Alfredo Knopik Junior (joao.alfredo@gmail.com, jakjr@celepar.pr.gov.br)  *
5        * ---------------------------------------------------------------------------------*
6        *  This program is free software; you can redistribute it and/or modify it                 *
7        *  under the terms of the GNU General Public License as published by the                   *
8        *  Free Software Foundation; either version 2 of the License, or (at your                  *
9        *  option) any later version.                                                                                                      *
10        \***********************************************************************************/
11
12        class bomanagers
13        {
14                var $public_functions = array(
15                        'add_managers'  => True,
16                        'edit_managers' => True
17                );
18
19                function add_managers()
20                {
21                        // Nao sendo Admin, sai
22                        if ($GLOBALS['phpgw']->acl->check('account_access',4,'admin'))
23                        {
24                                ExecMethod('admin.uiaccounts.list_users');
25                                return false;
26                        }
27                       
28                        //Recebe valores do POST
29                        $manager = array(
30                        'lid'                                   => $_POST['manager_lid'],
31                        'context'                               => $_POST['context'],
32                        'add_users'                             => $_POST['add_users'],
33                        'edit_users'                            => $_POST['edit_users'],
34                        'delete_users'                          => $_POST['delete_users'],
35                        'rename_users'                          => $_POST['rename_users'],
36                        'view_users'                            => $_POST['view_users'],
37                        'add_groups'                            => $_POST['add_groups'],
38                        'edit_groups'                           => $_POST['edit_groups'],
39                        'delete_groups'                         => $_POST['delete_groups'],
40                        'edit_email_groups'                     => $_POST['edit_email_groups'],
41                        'change_users_password'                 => $_POST['change_users_password'],
42                        'change_users_quote'                    => $_POST['change_users_quote'],
43                        'set_user_default_password'             => $_POST['set_user_default_password'],
44                        'edit_sambausers_attributes'            => $_POST['edit_sambausers_attributes'],
45                        'edit_sambadomains'                     => $_POST['edit_sambadomains'],
46                        'add_email_lists'                       => $_POST['add_maillists'],
47                        'edit_email_lists'                      => $_POST['edit_maillists'],
48                        'adm_email_lists'                       => $_POST['adm_maillists'],
49                        'delete_email_lists'                    => $_POST['delete_maillists'],                 
50                        'create_sectors'                        => $_POST['create_sectors'],
51                        'edit_sectors'                          => $_POST['edit_sectors'],
52                        'delete_sectors'                        => $_POST['delete_sectors'],
53                        'view_global_sessions'                  => $_POST['view_global_sessions'],
54                        'view_logs'                             => $_POST['view_logs'],
55                        'create_computers'                      => $_POST['create_computers'],
56                        'edit_computers'                        => $_POST['edit_computers'],
57                        'delete_computers'                      => $_POST['delete_computers'],                 
58                        'apps'                                  => $_POST['applications_list']
59                        );
60                       
61                        // Soma os niveis de acesso criando uma ACL
62                        $acl = 0;
63                        $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'];
64                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups'];
65                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'];
66                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains'];
67                        $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['adm_email_lists'] + $manager['delete_email_lists'];
68                        $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions'];
69                        $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers'];
70                        $acl = $acl + $manager['view_logs'];
71
72                        //Escrevre no Banco
73                        $sql = "INSERT INTO phpgw_expressoadmin (manager_lid, context, acl) "
74                        . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $acl . "')";
75                        $GLOBALS['phpgw']->db->query($sql);
76                       
77                        //Escrevre no Banco as aplicações que o gerente tem direito de disponibilizar aos seus usuarios.
78                        foreach($manager['apps'] as $app=>$value)
79                        {
80                                $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) "
81                                . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')";
82                                $GLOBALS['phpgw']->db->query($sql);
83                        }
84                       
85                        //Retorna ao list managers
86                        ExecMethod('expressoAdmin1_2.uimanagers.list_managers');
87                        return True;
88                }
89               
90                function edit_managers()
91                {
92                        // Nao sendo Admin, sai
93                        if ($GLOBALS['phpgw']->acl->check('account_access',4,'admin'))
94                        {
95                                ExecMethod('expressoAdmin1_2.uiaccounts.list_users');
96                                return False;
97                        }
98
99                        //recebe valores do POST
100                        $manager = array(
101                        'old_lid'                               => $_POST['old_manager_lid'],
102                        'old_context'                           => $_POST['old_context'],
103                        'lid'                                   => $_POST['manager_lid'],
104                        'context'                               => $_POST['context'],
105                        'add_users'                             => $_POST['add_users'],
106                        'edit_users'                            => $_POST['edit_users'],
107                        'delete_users'                          => $_POST['delete_users'],
108                        'rename_users'                          => $_POST['rename_users'],
109                        'view_users'                            => $_POST['view_users'],
110                        'add_groups'                            => $_POST['add_groups'],
111                        'edit_groups'                           => $_POST['edit_groups'],
112                        'delete_groups'                         => $_POST['delete_groups'],
113                        'edit_email_groups'                     => $_POST['edit_email_groups'],                 
114                        'change_users_password'                 => $_POST['change_users_password'],
115                        'change_users_quote'                    => $_POST['change_users_quote'],
116                        'set_user_default_password'             => $_POST['set_user_default_password'],
117                        'edit_sambausers_attributes'            => $_POST['edit_sambausers_attributes'],
118                        'edit_sambadomains'                     => $_POST['edit_sambadomains'],
119                        'add_email_lists'                       => $_POST['add_maillists'],
120                        'edit_email_lists'                      => $_POST['edit_maillists'],
121                        'adm_email_lists'                       => $_POST['adm_maillists'],
122                        'delete_email_lists'                    => $_POST['delete_maillists'],
123                        'create_sectors'                        => $_POST['create_sectors'],
124                        'edit_sectors'                          => $_POST['edit_sectors'],
125                        'delete_sectors'                        => $_POST['delete_sectors'],
126                        'view_global_sessions'                  => $_POST['view_global_sessions'],
127                        'view_logs'                             => $_POST['view_logs'],
128                        'create_computers'                      => $_POST['create_computers'],
129                        'edit_computers'                        => $_POST['edit_computers'],
130                        'delete_computers'                      => $_POST['delete_computers'],
131                        'apps'                                  => $_POST['applications_list']
132                        );
133                       
134                        // Soma os niveis de acesso criando uma ACL
135                        $acl = 0;
136                        $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'];
137                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups'];
138                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'];
139                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains'];
140                        $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['adm_email_lists'] + $manager['delete_email_lists'];
141                        $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions'];
142                        $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers'];
143                        $acl = $acl + $manager['view_logs'];
144                       
145                        //Executa update na tabela
146                        $sql = "UPDATE phpgw_expressoadmin SET manager_lid = '".$manager['lid']
147                        . "',context = '".$manager['context']
148                        . "',acl = '".$acl
149                        . "' WHERE manager_lid = '".$manager['old_lid']."' AND context = '" . $manager['old_context'] ."'";
150                        $GLOBALS['phpgw']->db->query($sql);
151                       
152                        //Deleta as aplicações e adiciona as novas.
153                        //Deleta
154                        $sql = "DELETE FROM phpgw_expressoadmin_apps WHERE "
155                        . "manager_lid = '".$manager['old_lid']."' AND "
156                        . "context = '".$manager['old_context']."'";
157                        $GLOBALS['phpgw']->db->query($sql);             
158                        // Adiciona
159                        if (count($manager['apps']))
160                        {
161                                foreach($manager['apps'] as $app=>$value)
162                                {
163                                        $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) "
164                                        . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')";
165                                        $GLOBALS['phpgw']->db->query($sql);
166                                }
167                        }
168                       
169                        // Retorna ao list managers
170                        ExecMethod('expressoAdmin1_2.uimanagers.list_managers');
171                        return True;
172                }               
173        }
174?>
Note: See TracBrowser for help on using the repository browser.