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 2098 2014-02-11 01:37:03Z 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 02:37:03 +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
		$oDb = WbDatabase::getInstance();
30
		$oTrans = Translate::getInstance();
31
        $oTrans->enableAddon('admin\\users');
32

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

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

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

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

    
56
        $UserStatusActive = 'url('.THEME_URL.'/images/user.png)';
57
        $UserStatusInactive = 'url('.THEME_URL.'/images/user_red.png)';
58

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

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

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

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

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

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

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

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

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

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

    
180
        $oTpl->set_block('main_block', 'show_add_loginname_block', 'show_add_loginname');
181
		$oTpl->set_block('main_block', 'show_change_group_list_block', 'show_change_group_list');
182

    
183
		$oTpl->parse('show_change_group_list', '');
184
//		$oTpl->parse('show_change_group_list', 'show_change_group_list_block', true);
185

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

    
203

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

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

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

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

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

    
263
        // Include the WB functions file
264
        if(!function_exists('directory_list')) { require(WB_PATH.'/framework/functions.php'); }
265

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

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

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

    
288
        return $output;
289

    
290
    }
(7-7/7)