Project

General

Profile

1
<?php
2

    
3
/**
4
 *
5
 * @category        admin
6
 * @package         pages
7
 * @author          Ryan Djurovich (2004-2009), WebsiteBaker Project
8
 * @copyright       2009-2012, WebsiteBaker Org. e.V.
9
 * @link			http://www.websitebaker2.org/
10
 * @license         http://www.gnu.org/licenses/gpl.html
11
 * @platform        WebsiteBaker 2.8.x
12
 * @requirements    PHP 5.2.2 and higher
13
 * @version         $Id: user_list.php 2100 2014-02-11 15:13:12Z darkviper $
14
 * @filesource		$HeadURL: svn://isteam.dynxs.de/wb-archiv/branches/2.8.x/wb/admin/users/user_list.php $
15
 * @lastmodified    $Date: 2014-02-11 16:13:12 +0100 (Tue, 11 Feb 2014) $
16
 *
17
 */
18

    
19
/* -------------------------------------------------------- */
20
// Must include code to stop this file being accessed directly
21
if(!defined('WB_URL')) {
22
	require_once(dirname(dirname(dirname(__FILE__))).'/framework/globalExceptionHandler.php');
23
	throw new IllegalFileException();
24
}
25
/* -------------------------------------------------------- */
26

    
27
	function show_userlist($admin, &$aActionRequest)
28
	{
29
        $oReg = WbAdaptor::getInstance();
30
		$oDb = WbDatabase::getInstance();
31
		$oTrans = Translate::getInstance();
32
        $oTrans->enableAddon('admin\\users');
33

    
34
        $iUserStatus = (($admin->get_get('status') == 1) ? 0 : 1);
35
        unset($_GET);
36

    
37
        // Setup template object, parse vars to it, then parse it
38
        // Create new template object
39
        $oTpl = new Template(dirname($admin->correct_theme_source('users.htt')),'keep');
40
        // $oTpl->debug = true;
41

    
42
        $oTpl->set_file('page', 'users.htt');
43
        $oTpl->set_block('page', 'main_block', 'main');
44
        $oTpl->set_block("main_block", "manage_groups_block", "groups");
45

    
46
        $oTpl->set_var($oTrans->getLangArray());
47
        $oTpl->set_var('ADMIN_URL', $oReg->AcpUrl);
48
        $oTpl->set_var('FTAN', $admin->getFTAN());
49
        $oTpl->set_var('USER_STATUS', $iUserStatus );
50
        $oTpl->set_var('groups', '');
51
        $oTpl->set_var('DISPLAY_ADD', '');
52
        $oTpl->set_var('DISPLAY_MODIFY', '');
53
        $oTpl->set_var('DISABLED_CHECKED', '');
54
        $oTpl->set_var('HEADING_MODIFY_USER', '');
55
        $oTpl->set_var('DISPLAY_HOME_FOLDERS', '');
56

    
57
        $UserStatusActive = 'url('.$oReg->ThemeUrl.'images/user.png)';
58
        $UserStatusInactive = 'url('.$oReg->ThemeUrl.'images/user_red.png)';
59

    
60
        $sUserTitle = ($iUserStatus == 0) ? $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_ACTIVE, 'UTF-8')
61
                                          : $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_DELETED, 'UTF-8') ;
62

    
63
        $oTpl->set_var('TEXT_USERS', $sUserTitle.' '.$oTrans->TEXT_SHOW );
64
        $oTpl->set_var('STATUS_ICON', ( ($iUserStatus==0) ? $UserStatusActive : $UserStatusInactive) );
65

    
66
        // Get existing value from database
67
        $sql = 'SELECT `user_id`, `username`, `display_name`, `active` FROM `'.$oDb->TablePrefix.'users` '
68
             . 'WHERE user_id != 1 '
69
             .     'AND `active` = '.$iUserStatus.' '
70
             .     'AND `confirm_code` = \'\' '
71
             . 'ORDER BY `display_name`,`username`';
72
        $oRes = $oDb->doQuery($sql);
73
        if($oDb->isError()) {
74
        	$admin->print_error($oDb->getError(), 'index.php');
75
        }
76

    
77
        $sUserList  = $oTrans->TEXT_LIST_OPTIONS.' ';
78
        $sUserList .= ($iUserStatus == 1) ? $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_ACTIVE, 'UTF-8')
79
                                          : $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_DELETED, 'UTF-8') ;
80
        // Insert values into the modify/remove menu
81
        $oTpl->set_block('main_block', 'list_block', 'list');
82
        if($oRes->numRows() > 0) {
83
        	// Insert first value to say please select
84
        	$oTpl->set_var('VALUE', '');
85
        	$oTpl->set_var('NAME', $sUserList);
86
        	$oTpl->set_var('STATUS', 'class="user-active"' );
87
        	$oTpl->parse('list', 'list_block', true);
88
        	// Loop through users
89
        	while($user = $oRes->fetchRow(MYSQL_ASSOC)) {
90
        		$oTpl->set_var('VALUE',$admin->getIDKEY($user['user_id']));
91
        		$oTpl->set_var('STATUS', ($user['active']==false ? 'class="user-inactive"' : 'class="user-active"') );
92
        		$oTpl->set_var('NAME', $user['display_name'].' ('.$user['username'].')');
93
        		$oTpl->parse('list', 'list_block', true);
94
        	}
95
        } else {
96
        	// Insert single value to say no users were found
97
        	$oTpl->set_var('NAME', $oTrans->TEXT_NONE_FOUND);
98
        	$oTpl->parse('list', 'list_block', true);
99
        }
100

    
101
        // Insert permissions values
102
        if($admin->get_permission('users_add') != true) {
103
        	$oTpl->set_var('DISPLAY_ADD', 'hide');
104
        }
105
        if($admin->get_permission('users_modify') != true) {
106
        	$oTpl->set_var('DISPLAY_MODIFY', 'hide');
107
        }
108
        if($admin->get_permission('users_delete') != true) {
109
        	$oTpl->set_var('DISPLAY_DELETE', 'hide');
110
        }
111
        $HeaderTitle  = (($iUserStatus == 1) ? $oTrans->HEADING_MODIFY_ACTIVE_USER : $oTrans->HEADING_MODIFY_DELETE_USER ).' ';
112
        $HeaderTitle .= (($iUserStatus == 1) ? mb_strtolower($oTrans->TEXT_ACTIVE, 'UTF-8')
113
                                             : mb_strtolower($oTrans->TEXT_INACTIVE, 'UTF-8'));
114
        // Insert language headings
115
        $oTpl->set_var(array(
116
        		'HEADING_MODIFY_DELETE_USER' => $HeaderTitle
117
        		)
118
        );
119
        // insert urls
120
        $oTpl->set_var(array(
121
                'ADMIN_URL' => $oReg->AcpUrl,
122
                'WB_URL'    => $oReg->AppUrl,
123
                'THEME_URL' => $oReg->ThemeUrl
124
        		)
125
        );
126
        // Insert language text and messages
127
        $oTpl->set_var(array(
128
        		'DISPLAY_WAITING_ACTIVATION' => '',
129
        		'TEXT_USER_DELETE' => (($iUserStatus == 1) ? $oTrans->TEXT_DEACTIVE : $oTrans->TEXT_DELETE),
130
        		'TEXT_MANAGE_GROUPS' => ( $admin->get_permission('groups') == true ) ? $oTrans->TEXT_MANAGE_GROUPS : "**",
131
        		'CONFIRM_DELETE' => (($iUserStatus == 1) ? $oTrans->TEXT_ARE_YOU_SURE : $oTrans->MESSAGE_USERS_CONFIRM_DELETE)
132
        		)
133
        );
134

    
135
        $oTpl->set_block('main_block', 'show_confirmed_activation_block', 'show_confirmed_activation');
136
        if($admin->ami_group_member('1')) {
137
                $oTpl->set_block('show_confirmed_activation_block', 'list_confirmed_activation_block', 'list_confirmed_activation');
138
                $oTpl->set_var(array(
139
                		'DISPLAY_WAITING_ACTIVATION' => $oTrans->MESSAGE_USERS_WAITING_ACTIVATION,
140
                		'TEXT_USER_ACTIVATE' => $oTrans->TEXT_ACTIVATE,
141
                		'TEXT_USER_DELETE' => (($iUserStatus == 1) ? $oTrans->TEXT_DEACTIVE : $oTrans->TEXT_DELETE),
142
                		)
143
                );
144
        		$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'users` '
145
        		     . 'WHERE `confirm_timeout` != 0 AND `active` = 0 AND `user_id` != 1 ';
146
                if( ($oRes = $oDb->doQuery($sql)) ) {
147
                	$oTpl->set_var('DISPLAY_DELETE', '');
148
                	// Loop through users
149
                    if(($nNumRows = $oRes->numRows())) {
150
                    	while($aUser = $oRes->fetchRow(MYSQL_ASSOC)) {
151
                    		$oTpl->set_var('CVALUE',$admin->getIDKEY($aUser['user_id']));
152
                       		$oTpl->set_var('CSTATUS', '') ;
153
                    		$oTpl->set_var('CNAME', $aUser['display_name'].' ('.$aUser['username'].')'.' ['.$aUser['email'].']');
154
                    		$oTpl->parse('list_confirmed_activation', 'list_confirmed_activation_block', true);
155
                    	}
156
                    	$oTpl->parse('show_confirmed_activation', 'show_confirmed_activation_block',true);
157
                    }
158
                } else { $nNumRows = 0; }
159

    
160
        } else {
161
            $nNumRows = 0;
162
        }
163

    
164
        if ( $nNumRows == 0){
165
        	$oTpl->parse('show_confirmed_activation', '');
166
        }
167

    
168
        if ( $admin->get_permission('groups') == true ) $oTpl->parse("groups", "manage_groups_block", true);
169
        // Parse template object
170
        $oTpl->parse('main', 'main_block', false);
171

    
172
		$output = $oTpl->finish($oTpl->parse('output', 'page'));
173
        // Setup template object, parse vars to it, then parse it
174
        // Create new template object
175
        $oTpl = new Template(dirname($admin->correct_theme_source('users_form.htt')),'keep');
176
        // $oTpl->debug = true;
177
        $oTpl->set_file('page', 'users_form.htt');
178
        $oTpl->set_block('page', 'main_block', 'main');
179
        $oTpl->set_block('main_block', 'show_modify_loginname_block', 'show_modify_loginname');
180

    
181
        $oTpl->set_block('main_block', 'show_add_loginname_block', 'show_add_loginname');
182
		$oTpl->set_block('main_block', 'show_change_group_list_block', 'show_change_group_list');
183
        $oTpl->set_var($oTrans->getLangArray());
184
		$oTpl->parse('show_change_group_list', '');
185
//		$oTpl->parse('show_change_group_list', 'show_change_group_list_block', true);
186

    
187
		$oTpl->set_var(	array(
188
                   'ADMIN_URL'            => $oReg->AcpUrl,
189
                   'WB_URL'               => $oReg->AppUrl,
190
                   'THEME_URL'            => $oReg->ThemeUrl,
191
    			   'ACTION_URL'           => $oReg->AcpUrl.'users/index.php',
192
    			   'FTAN'                 => $admin->getFTAN(),
193
    			   'DISPLAY_EXTRA'        => 'display:none;',
194
    			   'ACTIVE_CHECKED'       => ' checked="checked"',
195
    			   'DISABLED_CHECKED'     => '',
196
    			   'NO_RIGHTS'            => 'hide',
197
    			   'CHANGING_GROUPS'      => '',
198
    			   'DISPLAY_ADD'          => '',
199
    			   'DISPLAY_MODIFY'       => '',
200
    			   'HEADING_MODIFY_USER'  => '',
201
    			   'DISPLAY_HOME_FOLDERS' => '',
202
    			   'SUBMIT_TITLE'         => $oTrans->TEXT_ADD,
203
                   'HIDE_SAVE_BACK'       => 'hide',
204
    			   )
205
			);
206

    
207

    
208
        // insert urls
209
        $oTpl->set_var(array(
210
        		'USER_ID'      => '',
211
        		'USERNAME'     => '',
212
        		'DISPLAY_NAME' => '',
213
        		'EMAIL'        => '',
214
                'SUB_ACTION'   => 'add',
215
                'CANCEL_URL'   => $aActionRequest['cancel_url']
216
        		)
217
        );
218

    
219
        // Add groups to list
220
        $oTpl->set_block('main_block', 'group_list_block', 'group_list');
221
        $sql = 'SELECT `group_id`, `name` FROM `'.$oDb->TablePrefix.'groups` '
222
             . 'WHERE `group_id` != 1';
223
        $results = $oDb->doQuery($sql);
224
        if($results->numRows() > 0) {
225
        	$oTpl->set_var('ID', '');
226
        	$oTpl->set_var('NAME', $oTrans->TEXT_PLEASE_SELECT.'...');
227
        	$oTpl->set_var('SELECTED', ' selected="selected"');
228
        	$oTpl->parse('group_list', 'group_list_block', true);
229
        	while($group = $results->fetchRow()) {
230
        		$oTpl->set_var('ID', $group['group_id']);
231
        		$oTpl->set_var('NAME', $group['name']);
232
        		$oTpl->set_var('SELECTED', '');
233
        		$oTpl->parse('group_list', 'group_list_block', true);
234
        	}
235
        }
236
        // Only allow the user to add a user to the Administrators group if they belong to it
237
        if(in_array(1, $admin->get_groups_id())) {
238
        	$users_groups = $admin->get_groups_name();
239
        	$oTpl->set_var('ID', '1');
240
        	$oTpl->set_var('NAME', $users_groups[1]);
241
        	$oTpl->set_var('SELECTED', '');
242
        	$oTpl->parse('group_list', 'group_list_block', true);
243
        } else {
244
        	if($results->numRows() == 0) {
245
        		$oTpl->set_var('ID', '');
246
        		$oTpl->set_var('NAME', $oTrans->TEXT_NONE_FOUND);
247
        		$oTpl->parse('group_list', 'group_list_block', true);
248
        	}
249
        }
250

    
251
        // Insert permissions values
252
        if($admin->get_permission('users_add') != true) {
253
        	$oTpl->set_var('DISPLAY_ADD', 'hide');
254
        }
255

    
256
        // Generate username field name
257
		$username_fieldname = 'username_'.substr(base_convert(microtime(), 16, 36), 0, 8);
258

    
259
        // Work-out if home folder should be shown
260
        if(!HOME_FOLDERS) {
261
        	$oTpl->set_var('DISPLAY_HOME_FOLDERS', 'display:none;');
262
        }
263

    
264
        // Include the WB functions file
265
        if(!function_exists('directory_list')) { require($oReg->AppPath.'framework/functions.php'); }
266

    
267
        // Add media folders to home folder list
268
        $oTpl->set_block('main_block', 'folder_list_block', 'folder_list');
269
        foreach(directory_list($oReg->AppPath.$oReg->MediaDir) AS $name) {
270
        	$oTpl->set_var('NAME', str_replace($oReg->AppPath, '', $name));
271
        	$oTpl->set_var('FOLDER', str_replace($oReg->AppPath.$oReg->MediaDir, '', $name));
272
        	$oTpl->set_var('SELECTED', ' ');
273
        	$oTpl->parse('folder_list', 'folder_list_block', true);
274
        }
275

    
276
        // Insert language text and messages
277
        $oTpl->set_var(array(
278
            'USERNAME_FIELDNAME'   => $username_fieldname,
279
            'CHANGING_PASSWORD'    => $oTrans->MESSAGE_USERS_CHANGING_PASSWORD
280
            )
281
        );
282

    
283
        // Parse template for add user form
284
        $oTpl->parse('show_modify_loginname', '', true);
285
        $oTpl->parse('show_add_loginname', 'show_add_loginname_block', true);
286
        $oTpl->parse('main', 'main_block', false);
287
		$output .= $oTpl->finish($oTpl->parse('output', 'page'));
288

    
289
        return $output;
290

    
291
    }
(7-7/7)