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

Revision 2, 7.8 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

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