source: trunk/expressoAdmin1_2/inc/class.bomanagers.inc.php @ 63

Revision 63, 8.2 KB checked in by niltonneto, 17 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:executable set to *
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                       
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
76                        $sql = "INSERT INTO phpgw_expressoadmin (manager_lid, context, acl) "
77                        . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $acl . "')";
78                        $GLOBALS['phpgw']->db->query($sql);
79                       
80                        //Escrevre no Banco as aplicações que o gerente tem direito de disponibilizar aos seus usuarios.
81                        foreach($manager['apps'] as $app=>$value)
82                        {
83                                $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) "
84                                . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')";
85                                $GLOBALS['phpgw']->db->query($sql);
86                        }
87                       
88                        //Retorna ao list managers
89                        ExecMethod('expressoAdmin1_2.uimanagers.list_managers');
90                        return True;
91                }
92               
93                function edit_managers()
94                {
95                        // Nao sendo Admin, sai
96                        if ($GLOBALS['phpgw']->acl->check('account_access',4,'admin'))
97                        {
98                                ExecMethod('expressoAdmin1_2.uiaccounts.list_users');
99                                return False;
100                        }
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'],
108                       
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'],
136                       
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);
157                       
158                        //Deleta as aplicações e adiciona as novas.
159                        //Deleta
160                        $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);             
164                        // Adiciona
165                        if (count($manager['apps']))
166                        {
167                                foreach($manager['apps'] as $app=>$value)
168                                {
169                                        $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) "
170                                        . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')";
171                                        $GLOBALS['phpgw']->db->query($sql);
172                                }
173                        }
174                       
175                        // Retorna ao list managers
176                        ExecMethod('expressoAdmin1_2.uimanagers.list_managers');
177                        return True;
178                }               
179        }
180?>
Note: See TracBrowser for help on using the repository browser.