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

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