Skip to content

Commit bd06baf

Browse files
committed
Implemented: FS#1049 - Allow "Login as" also from the client list as it is allready possible from sysuser list.
1 parent 1d7941f commit bd06baf

File tree

3 files changed

+89
-75
lines changed

3 files changed

+89
-75
lines changed

interface/web/admin/login_as.php

Lines changed: 84 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,84 @@
1-
<?php
2-
/*
3-
Copyright (c) 2008, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
4-
All rights reserved.
5-
6-
Redistribution and use in source and binary forms, with or without modification,
7-
are permitted provided that the following conditions are met:
8-
9-
* Redistributions of source code must retain the above copyright notice,
10-
this list of conditions and the following disclaimer.
11-
* Redistributions in binary form must reproduce the above copyright notice,
12-
this list of conditions and the following disclaimer in the documentation
13-
and/or other materials provided with the distribution.
14-
* Neither the name of ISPConfig nor the names of its contributors
15-
may be used to endorse or promote products derived from this software without
16-
specific prior written permission.
17-
18-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21-
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22-
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23-
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25-
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28-
*/
29-
30-
31-
require_once('../../lib/config.inc.php');
32-
require_once('../../lib/app.inc.php');
33-
34-
/* Check permissions for module */
35-
$app->auth->check_module_permissions('admin');
36-
37-
/* for security reasons ONLY the admin can login as other user */
38-
if ($_SESSION["s"]["user"]["typ"] != 'admin') {
39-
die ("You don't have the right to login as other user!");
40-
}
41-
42-
/* get the id of the user (must be int!) */
43-
if (!isset($_GET['id'])){
44-
die ("No user selected!");
45-
}
46-
$userId = intval($_GET['id']);
47-
48-
/*
49-
* Get the data to login as user x
50-
*/
51-
$dbData = $app->db->queryOneRecord(
52-
"SELECT username, passwort FROM sys_user WHERE userid = " . $userId);
53-
54-
/*
55-
* Now generate the login-Form
56-
*/
57-
echo '
58-
<br /> <br /> <br /> <br />
59-
Do you want to login as user ' . $dbData['username'] . '?<br />
60-
If you do so, you can "go back" by clicking at logout.<br />
61-
<div style="visibility:hidden">
62-
<input type="text" name="username" value="' . $dbData['username'] . '" />
63-
<input type="password" name="passwort" value="' . $dbData['passwort'] .'" />
64-
</div>
65-
<input type="hidden" name="s_mod" value="login" />
66-
<input type="hidden" name="s_pg" value="index" />
67-
<div class="wf_actions buttons">
68-
<button class="positive iconstxt icoPositive" type="button" value="Yes, login as Client" onClick="submitLoginForm(' . "'pageForm'" . ');"><span>Yes, login as Client</span></button>
69-
<button class="negative iconstxt icoNegative" type="button" value="No, back to list" onClick="loadContent('. "'admin/users_list.php'" . ');"><span>No, back to list</span></button>
70-
</div>
71-
';
72-
?>
1+
<?php
2+
/*
3+
Copyright (c) 2008, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
4+
All rights reserved.
5+
6+
Redistribution and use in source and binary forms, with or without modification,
7+
are permitted provided that the following conditions are met:
8+
9+
* Redistributions of source code must retain the above copyright notice,
10+
this list of conditions and the following disclaimer.
11+
* Redistributions in binary form must reproduce the above copyright notice,
12+
this list of conditions and the following disclaimer in the documentation
13+
and/or other materials provided with the distribution.
14+
* Neither the name of ISPConfig nor the names of its contributors
15+
may be used to endorse or promote products derived from this software without
16+
specific prior written permission.
17+
18+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
*/
29+
30+
31+
require_once('../../lib/config.inc.php');
32+
require_once('../../lib/app.inc.php');
33+
34+
/* Check permissions for module */
35+
$app->auth->check_module_permissions('admin');
36+
37+
/* for security reasons ONLY the admin can login as other user */
38+
if ($_SESSION["s"]["user"]["typ"] != 'admin') {
39+
die ("You don't have the right to login as other user!");
40+
}
41+
42+
/* get the id of the user (must be int!) */
43+
if (!isset($_GET['id']) && !isset($_GET['cid'])){
44+
die ("No user selected!");
45+
}
46+
47+
if(isset($_GET['id'])) {
48+
$userId = intval($_GET['id']);
49+
$backlink = 'admin/users_list.php';
50+
} else {
51+
$client_id = intval($_GET['cid']);
52+
$tmp_client = $app->db->queryOneRecord("SELECT username FROM client WHERE client_id = $client_id");
53+
$tmp_sys_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE username = '".$app->db->quote($tmp_client['username'])."'");
54+
$userId = $tmp_sys_user['userid'];
55+
unset($tmp_client);
56+
unset($tmp_sys_user);
57+
$backlink = 'client/client_list.php';
58+
}
59+
60+
/*
61+
* Get the data to login as user x
62+
*/
63+
$dbData = $app->db->queryOneRecord(
64+
"SELECT username, passwort FROM sys_user WHERE userid = " . $userId);
65+
66+
/*
67+
* Now generate the login-Form
68+
*/
69+
echo '
70+
<br /> <br /> <br /> <br />
71+
Do you want to login as user ' . $dbData['username'] . '?<br />
72+
If you do so, you can "go back" by clicking at logout.<br />
73+
<div style="visibility:hidden">
74+
<input type="text" name="username" value="' . $dbData['username'] . '" />
75+
<input type="password" name="passwort" value="' . $dbData['passwort'] .'" />
76+
</div>
77+
<input type="hidden" name="s_mod" value="login" />
78+
<input type="hidden" name="s_pg" value="index" />
79+
<div class="wf_actions buttons">
80+
<button class="positive iconstxt icoPositive" type="button" value="Yes, login as Client" onClick="submitLoginForm(' . "'pageForm'" . ');"><span>Yes, login as Client</span></button>
81+
<button class="negative iconstxt icoNegative" type="button" value="No, back to list" onClick="loadContent('. "'$backlink'" . ');"><span>No, back to list</span></button>
82+
</div>
83+
';
84+
?>

interface/web/client/templates/clients_list.htm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ <h2><tmpl_var name="list_head_txt"></h2>
4343
<td class="tbl_col_city"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="city"}</a></td>
4444
<td class="tbl_col_country"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="country"}</a></td>
4545
<td class="tbl_col_buttons">
46-
<div class="buttons icons16">
46+
<div class="buttons icons16">
47+
<a class="icons16 icoLoginAs" href="#" onclick="loadContent('admin/login_as.php?cid={tmpl_var name='id'}');"><span>{tmpl_var name='login_as_txt'}</span></a>
4748
<a class="icons16 icoDelete" href="javascript: del_record('client/client_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a>
4849
</div>
4950
</td>

interface/web/client/templates/resellers_list.htm

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ <h2><tmpl_var name="list_head_txt"></h2>
4343
<td class="tbl_col_city"><a href="#" onClick="loadContent('client/reseller_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="city"}</a></td>
4444
<td class="tbl_col_country"><a href="#" onClick="loadContent('client/reseller_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="country"}</a></td>
4545
<td class="tbl_col_buttons">
46-
<div class="buttons icons16">
47-
<a class="icons16 icoDelete" href="javascript: del_record('client/reseller_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a>
46+
<div class="buttons icons16">
47+
<a class="icons16 icoLoginAs" href="#" onclick="loadContent('admin/login_as.php?cid={tmpl_var name='id'}');"><span>{tmpl_var name='login_as_txt'}</span></a>
48+
<a class="icons16 icoDelete" href="javascript: del_record('client/reseller_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a>
4849
</div>
4950
</td>
5051
</tr>

0 commit comments

Comments
 (0)