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 2099 2014-02-11 11:46:08Z darkviper $
14
 * @filesource		$HeadURL: svn://isteam.dynxs.de/wb-archiv/branches/2.8.x/wb/admin/users/user_form.php $
15
 * @lastmodified    $Date: 2014-02-11 12:46:08 +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_usermask($admin, &$aActionRequest)
28
	{
29
        $oReg = WbAdaptor::getInstance();
30
		$oDb = WbDatabase::getInstance();
31
		$oTrans = Translate::getInstance();
32
        $oTrans->enableAddon('admin\\users');
33

    
34
    	$user_id = intval($aActionRequest['user_id']);
35
        $user = array(
36
            'user_id' => 0,
37
            'username'=> '',
38
            'display_name'=> '',
39
            'email'=> '',
40
        );
41
		// Get existing values
42
        $sql = 'SELECT * FROM `'.$oDb->TablePrefix.'users` ' 
43
             . 'WHERE `user_id`='.$user_id.' AND `user_id` != 1';
44
        if (($oRes = $oDb->doQuery($sql))) {
45
            $user = $oRes->fetchRow(MYSQL_ASSOC);
46
        }
47
		// Setup template object, parse vars to it, then parse it
48
		// Create new template object
49
		$oTpl = new Template(dirname($admin->correct_theme_source('users_form.htt')),'keep');
50
//		$oTpl->debug = true;
51
		$oTpl->set_file('page', 'users_form.htt');
52
		$oTpl->set_block('page', 'main_block', 'main');
53
		$oTpl->set_block('main_block', 'show_modify_loginname_block', 'show_modify_loginname');
54
		$oTpl->set_block('main_block', 'show_add_loginname_block', 'show_add_loginname');
55
		$oTpl->set_block('main_block', 'show_change_group_list_block', 'show_change_group_list');
56
        $oTpl->set_var($oTrans->getLangArray());
57
		if( ( !$admin->ami_group_member('1') ) )
58
		{
59
            $oTpl->set_var('CHANGING_GROUPS', 'You are not allowed to change the groups');
60
    		$oTpl->parse('show_change_group_list', 'show_change_group_list_block');
61
		} else {
62
    		$oTpl->parse('show_change_group_list', '');
63
		}
64
		$oTpl->set_var(	array(
65
            'ACTION_URL'           => $oReg->AcpUrl.'users/index.php',
66
            'SUB_ACTION'           => 'save',
67
            'BACK_LINK'            => (isset($aActionRequest['BackLink'])) ? $aActionRequest['BackLink'] : '',
68
            'CANCEL_URL'           => $aActionRequest['cancel_url'],
69
            'SUBMIT_TITLE'         => $oTrans->TEXT_SAVE,
70
            'USER_ID'              => $user['user_id'],
71
            'DISPLAY_EXTRA'        => '',
72
            'DISPLAY_HOME_FOLDERS' => '',
73
            'USERNAME'             => $user['username'],
74
            'DISPLAY_NAME'         => $user['display_name'],
75
            'EMAIL'                => $user['email'],
76
            'ADMIN_URL'            => $oReg->AcpUrl,
77
            'WB_URL'               => $oReg->AppUrl,
78
            'THEME_URL'            => $oReg->ThemeUrl
79
            )
80
        );
81

    
82
		$oTpl->set_var('FTAN', $admin->getFTAN());
83
		if($user['active'] == 1) {
84
            $oTpl->set_var('DISABLED_CHECKED', '');
85
			$oTpl->set_var('ACTIVE_CHECKED', ' checked="checked"');
86
		} else {
87
            $oTpl->set_var('ACTIVE_CHECKED', '');
88
			$oTpl->set_var('DISABLED_CHECKED', ' checked="checked"');
89
		}
90
		// Add groups to list
91
		$oTpl->set_block('main_block', 'group_list_block', 'group_list');
92
    	$sql = 'SELECT `group_id`, `name` FROM `'.$oDb->TablePrefix.'groups` '
93
    	     . 'WHERE `group_id` != 1 ORDER BY `name`';
94
		if (($oRes = $oDb->doQuery($sql))) {
95
			$oTpl->set_var('ID', '');
96
			$oTpl->set_var('NAME', $oTrans->TEXT_PLEASE_SELECT.'...');
97
			$oTpl->set_var('SELECTED', '');
98
			$oTpl->parse('group_list', 'group_list_block', true);
99
			while($group = $oRes->fetchRow(MYSQL_ASSOC)) {
100
				$oTpl->set_var('ID', $group['group_id']);
101
				$oTpl->set_var('NAME', $group['name']);
102
				if(in_array($group['group_id'], explode(",",$user['groups_id']))) {
103
					$oTpl->set_var('SELECTED', ' selected="selected"');
104
				} else {
105
					$oTpl->set_var('SELECTED', '');
106
				}
107
				$oTpl->parse('group_list', 'group_list_block', true);
108
			}
109
		}
110

    
111
//		$in_group = false;
112
//  || ($admin->ami_group_member('1'))
113
// Only allow the user to add a user to the Administrators group if they belong to it
114
		if( ($admin->is_group_match($user['groups_id'], '1') ) || ($admin->ami_group_member('1')) )
115
	    {
116
            if( ($in_group = ($admin->ami_group_member('1'))) == false ) {
117
            	$sql = 'SELECT `name` FROM `'.$oDb->TablePrefix.'groups` '
118
            	     . 'WHERE `group_id` = 1 ORDER BY `name`';
119
                if( ($sGroupName = $oDb->getOne($sql)) != null ) {
120
            		$in_group = true;
121
        			$oTpl->set_var('ID', '1');
122
        			$oTpl->set_var('NAME', $sGroupName);
123
                }
124
            } else {
125
                if( ($in_group = ($admin->is_group_match($admin->get_groups_id(), '1'))) ) {
126
        			$sGroupName = $admin->get_groups_name();
127
        			$oTpl->set_var('ID', '1');
128
        			$oTpl->set_var('NAME', $sGroupName[1]);
129
                }
130
            }
131

    
132
			if($in_group) {
133
				$oTpl->set_var('SELECTED', ' selected="selected"');
134
			} else {
135
				$oTpl->set_var('SELECTED', '');
136
			}
137
			$oTpl->parse('group_list', 'group_list_block', true);
138
		} else {
139
			if($oRes->numRows() == 0) {
140
				$oTpl->set_var('ID', '');
141
				$oTpl->set_var('NAME', $oTrans->TEXT_NONE_FOUND);
142
				$oTpl->set_var('SELECTED', ' selected="selected"');
143
				$oTpl->parse('group_list', 'group_list_block', true);
144
			}
145
		}
146

    
147
		// Generate username field name
148
		$username_fieldname = 'username_'.substr(base_convert(microtime(), 16, 36), 0, 8);
149
		// Work-out if home folder should be shown
150
		if(!$oReg->HomeFolders) {
151
			$oTpl->set_var('DISPLAY_HOME_FOLDERS', 'display:none;');
152
		}
153

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

    
157
		// Add media folders to home folder list
158
		$oTpl->set_block('main_block', 'folder_list_block', 'folder_list');
159
		foreach(directory_list($oReg->AppPath.$oReg->MediaDir) AS $name)
160
	    {
161
			$oTpl->set_var('NAME', str_replace($oReg->AppPath, '', $name));
162
			$oTpl->set_var('FOLDER', str_replace($oReg->AppPath.$oReg->MediaDir, '', $name));
163
			if($user['home_folder'] == str_replace($oReg->AppPath.$oReg->MediaDir, '', $name)) {
164
				$oTpl->set_var('SELECTED', ' selected="selected"');
165
			} else {
166
				$oTpl->set_var('SELECTED', ' ');
167
			}
168
			$oTpl->parse('folder_list', 'folder_list_block', true);
169
		}
170

    
171
		// Insert language text and messages
172
		$oTpl->set_var(array(
173
                'TEXT_SAVE_BACK'     => $oTrans->TEXT_SAVE.' &amp; '.$oTrans->TEXT_BACK,
174
                'USERNAME_FIELDNAME' => $username_fieldname,
175
                'CHANGING_PASSWORD'  => $oTrans->MESSAGE_USERS_CHANGING_PASSWORD
176
            )
177
        );
178

    
179
		// Parse template object
180
		$oTpl->parse('show_modify_loginname', 'show_modify_loginname_block', true);
181
		$oTpl->parse('show_add_loginname', '', true);
182
		$oTpl->parse('main', 'main_block', false);
183
//			$oTpl->pparse('output', 'page');
184
		$output = $oTpl->finish($oTpl->parse('output', 'page'));
185

    
186
        return $output;
187
    }
(6-6/7)