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

Revision 46, 7.8 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                        '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                        'delete_email_lists'            => $_POST['delete_maillists'],                 
49                        'create_sectors'                        => $_POST['create_sectors'],
50                        'edit_sectors'                          => $_POST['edit_sectors'],
51                        'delete_sectors'                        => $_POST['delete_sectors'],
52                        'view_global_sessions'          => $_POST['view_global_sessions'],
53                        'view_logs'                                     => $_POST['view_logs'],
54                        'create_computers'                      => $_POST['create_computers'],
55                        'edit_computers'                        => $_POST['edit_computers'],
56                        'delete_computers'                      => $_POST['delete_computers'],                 
57                        'apps'                                          => $_POST['applications_list']
58                        );
59                       
60                        // Soma os niveis de acesso criando uma ACL
61                        $acl = 0;
62                        $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'];
63                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups'];
64                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'];
65                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains'];
66                        $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists'];
67                        $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions'];
68                        $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers'];
69                        $acl = $acl + $manager['view_logs'];
70
71                        //Escrevre no Banco
72                        $sql = "INSERT INTO phpgw_expressoadmin (manager_lid, context, acl) "
73                        . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $acl . "')";
74                        $GLOBALS['phpgw']->db->query($sql);
75                       
76                        //Escrevre no Banco as aplicações que o gerente tem direito de disponibilizar aos seus usuarios.
77                        foreach($manager['apps'] as $app=>$value)
78                        {
79                                $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) "
80                                . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')";
81                                $GLOBALS['phpgw']->db->query($sql);
82                        }
83                       
84                        //Retorna ao list managers
85                        ExecMethod('expressoAdmin1_2.uimanagers.list_managers');
86                        return True;
87                }
88               
89                function edit_managers()
90                {
91                        // Nao sendo Admin, sai
92                        if ($GLOBALS['phpgw']->acl->check('account_access',4,'admin'))
93                        {
94                                ExecMethod('expressoAdmin1_2.uiaccounts.list_users');
95                                return False;
96                        }
97
98                        //recebe valores do POST
99                        $manager = array(
100                        'old_lid'                                       => $_POST['old_manager_lid'],
101                        'old_context'                           => $_POST['old_context'],
102                        'lid'                                           => $_POST['manager_lid'],
103                        'context'                                       => $_POST['context'],
104                        'add_users'                                     => $_POST['add_users'],
105                        'edit_users'                            => $_POST['edit_users'],
106                        'delete_users'                          => $_POST['delete_users'],
107                        'rename_users'                          => $_POST['rename_users'],
108                        'view_users'                            => $_POST['view_users'],
109                        'add_groups'                            => $_POST['add_groups'],
110                        'edit_groups'                           => $_POST['edit_groups'],
111                        'delete_groups'                         => $_POST['delete_groups'],
112                        'edit_email_groups'                     => $_POST['edit_email_groups'],                 
113                        'change_users_password'         => $_POST['change_users_password'],
114                        'change_users_quote'            => $_POST['change_users_quote'],
115                        'set_user_default_password'     => $_POST['set_user_default_password'],
116                        'edit_sambausers_attributes'=> $_POST['edit_sambausers_attributes'],
117                        'edit_sambadomains'                     => $_POST['edit_sambadomains'],
118                        'add_email_lists'                       => $_POST['add_maillists'],
119                        'edit_email_lists'                      => $_POST['edit_maillists'],
120                        'delete_email_lists'            => $_POST['delete_maillists'],
121                        'create_sectors'                        => $_POST['create_sectors'],
122                        'edit_sectors'                          => $_POST['edit_sectors'],
123                        'delete_sectors'                        => $_POST['delete_sectors'],
124                        'view_global_sessions'          => $_POST['view_global_sessions'],
125                        'view_logs'                                     => $_POST['view_logs'],
126                        'create_computers'                      => $_POST['create_computers'],
127                        'edit_computers'                        => $_POST['edit_computers'],
128                        'delete_computers'                      => $_POST['delete_computers'],
129                        'apps'                                          => $_POST['applications_list']
130                        );
131                       
132                        // Soma os niveis de acesso criando uma ACL
133                        $acl = 0;
134                        $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'];
135                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups'];
136                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'];
137                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains'];
138                        $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists'];
139                        $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions'];
140                        $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers'];
141                        $acl = $acl + $manager['view_logs'];
142                       
143                        //Executa update na tabela
144                        $sql = "UPDATE phpgw_expressoadmin SET manager_lid = '".$manager['lid']
145                        . "',context = '".$manager['context']
146                        . "',acl = '".$acl
147                        . "' WHERE manager_lid = '".$manager['old_lid']."' AND context = '" . $manager['old_context'] ."'";
148                        $GLOBALS['phpgw']->db->query($sql);
149                       
150                        //Deleta as aplicações e adiciona as novas.
151                        //Deleta
152                        $sql = "DELETE FROM phpgw_expressoadmin_apps WHERE "
153                        . "manager_lid = '".$manager['old_lid']."' AND "
154                        . "context = '".$manager['old_context']."'";
155                        $GLOBALS['phpgw']->db->query($sql);             
156                        // Adiciona
157                        if (count($manager['apps']))
158                        {
159                                foreach($manager['apps'] as $app=>$value)
160                                {
161                                        $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) "
162                                        . "VALUES('" . $manager['lid'] . "','" . $manager['context'] . "','" . $app . "')";
163                                        $GLOBALS['phpgw']->db->query($sql);
164                                }
165                        }
166                       
167                        // Retorna ao list managers
168                        ExecMethod('expressoAdmin1_2.uimanagers.list_managers');
169                        return True;
170                }               
171        }
172?>
Note: See TracBrowser for help on using the repository browser.