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_form.php 1823 2012-11-20 17:36:55Z Luisehahne $
14
 * @filesource		$HeadURL: svn://isteam.dynxs.de/wb-archiv/branches/2.8.x/wb/admin/users/user_form.php $
15
 * @lastmodified    $Date: 2012-11-20 18:36:55 +0100 (Tue, 20 Nov 2012) $
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_usermask($admin, &$aActionRequest)
28
	{
29
		global $TEXT, $MESSAGE, $HEADING, $MENU;
30
		$database = WbDatabase::getInstance();
31

    
32
    	$user_id = intval($aActionRequest['user_id']);
33
        $user = array(
34
            'user_id' => 0,
35
            'username'=> '',
36
            'display_name'=> '',
37
            'email'=> '',
38
        );
39

    
40
		// Get existing values
41
        $sql  = 'SELECT * FROM `'.TABLE_PREFIX.'users` ' ;
42
        $sql .= 'WHERE user_id = '.$user_id.' ';
43
        $sql .=   'AND user_id != 1 ';
44

    
45
        if($oRes = $database->query($sql)){
46
            $user = $oRes->fetchRow(MYSQL_ASSOC);
47
        }
48

    
49
        $sNoRightsToChangeGroups = (($admin->get_user_id()==1)) ? 'hide' : '';
50
        $sNoRightsToChangeGroups = (($user['group_id']==1)) ? $sNoRightsToChangeGroups : 'hide';
51
		// Setup template object, parse vars to it, then parse it
52
		// Create new template object
53
		$oTpl = new Template(dirname($admin->correct_theme_source('users_form.htt')),'keep');
54
//		$oTpl->debug = true;
55
		$oTpl->set_file('page', 'users_form.htt');
56
		$oTpl->set_block('page', 'main_block', 'main');
57
		$oTpl->set_block('main_block', 'show_modify_loginname_block', 'show_modify_loginname');
58
		$oTpl->set_block('main_block', 'show_add_loginname_block', 'show_add_loginname');
59
		$oTpl->set_block('main_block', 'show_change_group_list_block', 'show_change_group_list');
60

    
61
		if( ( !$admin->ami_group_member('1') ) )
62
		{
63
            $oTpl->set_var('CHANGING_GROUPS', 'You are not allowed to change the groups');
64
    		$oTpl->parse('show_change_group_list', 'show_change_group_list_block');
65
		} else {
66
    		$oTpl->parse('show_change_group_list', '');
67
		}
68

    
69
		$oTpl->set_var(	array(
70
    			   'ACTION_URL'   => ADMIN_URL.'/users/index.php',
71
    			   'SUB_ACTION'   => 'save',
72
                   'BACK_LINK'    => (isset($aActionRequest['BackLink'])) ? $aActionRequest['BackLink'] : '',
73
                   'CANCEL_URL'   => $aActionRequest['cancel_url'],
74
    			   'SUBMIT_TITLE' => $TEXT['SAVE'],
75
                   'USER_ID' => $user['user_id'],
76
//    			   'NO_RIGHTS' => 'hide',
77
//    			   'CHANGING_GROUPS' => '',
78
    			   'DISPLAY_EXTRA' => '',
79
    			   'DISPLAY_HOME_FOLDERS' => '',
80
    			   'USERNAME' => $user['username'],
81
    			   'DISPLAY_NAME' => $user['display_name'],
82
    			   'EMAIL' => $user['email'],
83
    			   'ADMIN_URL' => ADMIN_URL,
84
    			   'WB_URL' => WB_URL,
85
    			   'THEME_URL' => THEME_URL
86
    			   )
87
			);
88

    
89
		$oTpl->set_var('FTAN', $admin->getFTAN());
90
		if($user['active'] == 1) {
91
            $oTpl->set_var('DISABLED_CHECKED', '');
92
			$oTpl->set_var('ACTIVE_CHECKED', ' checked="checked"');
93
		} else {
94
            $oTpl->set_var('ACTIVE_CHECKED', '');
95
			$oTpl->set_var('DISABLED_CHECKED', ' checked="checked"');
96
		}
97
//		$results = $database->query("SELECT group_id, name FROM ".TABLE_PREFIX."groups WHERE group_id != '1' ORDER BY name");
98
		// Add groups to list
99
		$oTpl->set_block('main_block', 'group_list_block', 'group_list');
100
    	$sql  = 'SELECT `group_id`,`name` FROM `'.TABLE_PREFIX.'groups` ';
101
    	$sql .= 'WHERE `group_id` != 1 ORDER BY `name`';
102
		if($oRes = $database->query($sql)) {
103
			$oTpl->set_var('ID', '');
104
			$oTpl->set_var('NAME', $TEXT['PLEASE_SELECT'].'...');
105
			$oTpl->set_var('SELECTED', '');
106
			$oTpl->parse('group_list', 'group_list_block', true);
107
			while($group = $oRes->fetchRow(MYSQL_ASSOC)) {
108
				$oTpl->set_var('ID', $group['group_id']);
109
				$oTpl->set_var('NAME', $group['name']);
110
				if(in_array($group['group_id'], explode(",",$user['groups_id']))) {
111
					$oTpl->set_var('SELECTED', ' selected="selected"');
112
				} else {
113
					$oTpl->set_var('SELECTED', '');
114
				}
115
				$oTpl->parse('group_list', 'group_list_block', true);
116
			}
117
		}
118

    
119
//		$in_group = false;
120
//  || ($admin->ami_group_member('1'))
121
// Only allow the user to add a user to the Administrators group if they belong to it
122
		if( ($admin->is_group_match($user['groups_id'], '1') ) || ($admin->ami_group_member('1')) )
123
	    {
124
            if( ($in_group = ($admin->ami_group_member('1'))) == false ) {
125
            	$sql  = 'SELECT `name` FROM `'.TABLE_PREFIX.'groups` ';
126
            	$sql .= 'WHERE `group_id` = 1 ORDER BY `name`';
127
                if( ($sGroupName = $database->get_one($sql)) != null ) {
128
            		$in_group = true;
129
        			$oTpl->set_var('ID', '1');
130
        			$oTpl->set_var('NAME', $sGroupName);
131
                }
132
            } else {
133
                if( $in_group = ($admin->is_group_match($admin->get_groups_id(), '1')) ) {
134
        			$sGroupName = $admin->get_groups_name();
135
        			$oTpl->set_var('ID', '1');
136
        			$oTpl->set_var('NAME', $sGroupName[1]);
137
                    $in_group = $user['group_id'] == 1;
138
                }
139
            }
140

    
141
			if($in_group) {
142
				$oTpl->set_var('SELECTED', ' selected="selected"');
143
			} else {
144
				$oTpl->set_var('SELECTED', '');
145
			}
146
			$oTpl->parse('group_list', 'group_list_block', true);
147
		} else {
148
			if($oRes->numRows() == 0) {
149
				$oTpl->set_var('ID', '');
150
				$oTpl->set_var('NAME', $TEXT['NONE_FOUND']);
151
				$oTpl->set_var('SELECTED', ' selected="selected"');
152
				$oTpl->parse('group_list', 'group_list_block', true);
153
			}
154
		}
155

    
156
		// Generate username field name
157
		$username_fieldname = 'username_';
158
		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
159
		srand((double)microtime()*1000000);
160
		$i = 0;
161
		while ($i <= 7) {
162
			$num = rand() % 33;
163
			$tmp = substr($salt, $num, 1);
164
			$username_fieldname = $username_fieldname . $tmp;
165
			$i++;
166
		}
167

    
168
		// Work-out if home folder should be shown
169
		if(!HOME_FOLDERS) {
170
			$oTpl->set_var('DISPLAY_HOME_FOLDERS', 'display:none;');
171
		}
172

    
173
		// Include the WB functions file
174
        if(!function_exists('directory_list')) { require(WB_PATH.'/framework/functions.php'); }
175

    
176
		// Add media folders to home folder list
177
		$oTpl->set_block('main_block', 'folder_list_block', 'folder_list');
178
		foreach(directory_list(WB_PATH.MEDIA_DIRECTORY) AS $name)
179
	    {
180
			$oTpl->set_var('NAME', str_replace(WB_PATH, '', $name));
181
			$oTpl->set_var('FOLDER', str_replace(WB_PATH.MEDIA_DIRECTORY, '', $name));
182
			if($user['home_folder'] == str_replace(WB_PATH.MEDIA_DIRECTORY, '', $name)) {
183
				$oTpl->set_var('SELECTED', ' selected="selected"');
184
			} else {
185
				$oTpl->set_var('SELECTED', ' ');
186
			}
187
			$oTpl->parse('folder_list', 'folder_list_block', true);
188
		}
189

    
190
		// Insert language text and messages
191
		$oTpl->set_var(array(
192
                    'TEXT_RESET' => $TEXT['RESET'],
193
                    'TEXT_CANCEL' => $TEXT['CANCEL'],
194
                    'TEXT_ACTIVE' => $TEXT['ACTIVE'],
195
                    'TEXT_DISABLED' => $TEXT['DISABLED'],
196
                    'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
197
                    'TEXT_USERNAME' => $TEXT['USERNAME'],
198
                    'TEXT_PASSWORD' => $TEXT['PASSWORD'],
199
                    'TEXT_RETYPE_PASSWORD' => $TEXT['RETYPE_PASSWORD'],
200
                    'TEXT_DISPLAY_NAME' => $TEXT['DISPLAY_NAME'],
201
                    'TEXT_EMAIL' => $TEXT['EMAIL'],
202
                    'TEXT_GROUP' => $TEXT['GROUP'],
203
                    'TEXT_NONE' => $TEXT['NONE'],
204
                    'TEXT_HOME_FOLDER' => $TEXT['HOME_FOLDER'],
205
                    'TEXT_SAVE_BACK' => $TEXT['SAVE'].' &amp; '.$TEXT['BACK'],
206
                    'USERNAME_FIELDNAME' => $username_fieldname,
207
                    'CHANGING_PASSWORD' => $MESSAGE['USERS_CHANGING_PASSWORD'],
208
                    'HEADING_MODIFY_USER' => $HEADING['MODIFY_USER']
209
                    )
210
                );
211

    
212
		// Parse template object
213
		$oTpl->parse('show_modify_loginname', 'show_modify_loginname_block', true);
214
		$oTpl->parse('show_add_loginname', '', true);
215
		$oTpl->parse('main', 'main_block', false);
216
//			$oTpl->pparse('output', 'page');
217
		$output = $oTpl->finish($oTpl->parse('output', 'page'));
218

    
219
        return $output;
220
    }
(6-6/7)