Skip to content

Commit be7d7f8

Browse files
committed
Separated clients and resellers and
Fixed FS#775 - Client can choose the servers for it's client
1 parent 9f4944b commit be7d7f8

20 files changed

+2546
-853
lines changed

interface/lib/classes/custom_datasource.inc.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,32 @@ function dns_servers($field, $record) {
6464
}
6565

6666

67+
function client_servers($field, $record) {
68+
global $app, $conf;
69+
70+
$server_type = $field['name'];
71+
72+
if($_SESSION["s"]["user"]["typ"] == 'user') {
73+
// Get the limits of the client
74+
$client_group_id = $_SESSION["s"]["user"]["default_group"];
75+
$sql = "SELECT $server_type as server_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id";
76+
$client = $app->db->queryOneRecord($sql);
77+
$sql = "SELECT server_id,server_name FROM server WHERE server_id = ".$client['server_id'];
78+
} else {
79+
$sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 ORDER BY server_name";
80+
}
81+
$records = $app->db->queryAllRecords($sql);
82+
$records_new = array();
83+
if(is_array($records)) {
84+
foreach($records as $rec) {
85+
$key = $rec['server_id'];
86+
$records_new[$key] = $rec['server_name'];
87+
}
88+
}
89+
return $records_new;
90+
}
91+
92+
6793

6894
}
6995

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2007 - 2009, Till Brehm, projektfarm Gmbh
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
class validate_reseller {
32+
33+
/*
34+
Validator function to check if a given cron command is in correct form (url only).
35+
*/
36+
function limit_client($field_name, $field_value, $validator) {
37+
global $app;
38+
39+
if($field_value <= 0) {
40+
return $app->tform->lng('limit_client_error_positive');
41+
} else {
42+
return '';
43+
}
44+
}
45+
46+
47+
}

interface/web/admin/form/server.tform.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122
)
123123
);
124124

125-
125+
/*
126126
$form["tabs"]['config'] = array (
127127
'title' => "Config",
128128
'width' => 100,
@@ -146,6 +146,6 @@
146146
##################################
147147
)
148148
);
149-
149+
*/
150150

151151
?>
Lines changed: 40 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,40 @@
1-
<h2><tmpl_var name="list_head_txt"></h2>
2-
<p><tmpl_var name="list_desc_txt"></p>
3-
4-
<div class="panel panel_list_server_config">
5-
6-
<div class="pnl_toolsarea">
7-
<fieldset><legend>Tools</legend>
8-
<div class="buttons">
9-
<button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/server_config_edit.php');">
10-
<span>{tmpl_var name="add_new_record_txt"}</span>
11-
</button>
12-
</div>
13-
</fieldset>
14-
</div>
15-
16-
<div class="pnl_listarea">
17-
<fieldset><legend><tmpl_var name="list_head_txt"></legend>
18-
<table class="list">
19-
<thead>
20-
<tr>
21-
<th class="tbl_col_server_name" scope="col"><tmpl_var name="server_name_txt"></th>
22-
<th class="tbl_col_buttons" scope="col">&nbsp;</th>
23-
</tr>
24-
<tr>
25-
<td class="tbl_col_server_name"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" /></td>
26-
<td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_config_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td>
27-
</tr>
28-
</thead>
29-
<tbody>
30-
<tmpl_loop name="records">
31-
<tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
32-
<td class="tbl_col_server_name"><a href="#" onClick="loadContent('admin/server_config_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_name"}</a></td>
33-
<td class="tbl_col_buttons">
34-
<div class="buttons icons16">
35-
<a class="icons16 icoDelete" href="javascript: del_record('admin/server_config_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>
36-
</div>
37-
</td>
38-
</tr>
39-
</tmpl_loop>
40-
</tbody>
41-
<tfoot>
42-
<tr>
43-
<td class="tbl_footer tbl_paging" colspan="2"><tmpl_var name="paging"></td>
44-
</tr>
45-
</tfoot>
46-
</table>
47-
</fieldset>
48-
</div>
49-
50-
</div>
1+
<h2><tmpl_var name="list_head_txt"></h2>
2+
<p><tmpl_var name="list_desc_txt"></p>
3+
4+
<div class="panel panel_list_server_config">
5+
6+
<div class="pnl_listarea">
7+
<fieldset><legend><tmpl_var name="list_head_txt"></legend>
8+
<table class="list">
9+
<thead>
10+
<tr>
11+
<th class="tbl_col_server_name" scope="col"><tmpl_var name="server_name_txt"></th>
12+
<th class="tbl_col_buttons" scope="col">&nbsp;</th>
13+
</tr>
14+
<tr>
15+
<td class="tbl_col_server_name"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" /></td>
16+
<td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_config_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td>
17+
</tr>
18+
</thead>
19+
<tbody>
20+
<tmpl_loop name="records">
21+
<tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
22+
<td class="tbl_col_server_name"><a href="#" onClick="loadContent('admin/server_config_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_name"}</a></td>
23+
<td class="tbl_col_buttons">
24+
<div class="buttons icons16">
25+
<a class="icons16 icoDelete" href="javascript: del_record('admin/server_config_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>
26+
</div>
27+
</td>
28+
</tr>
29+
</tmpl_loop>
30+
</tbody>
31+
<tfoot>
32+
<tr>
33+
<td class="tbl_footer tbl_paging" colspan="2"><tmpl_var name="paging"></td>
34+
</tr>
35+
</tfoot>
36+
</table>
37+
</fieldset>
38+
</div>
39+
40+
</div>
Lines changed: 58 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,58 @@
1-
<h2><tmpl_var name="list_head_txt"></h2>
2-
<p><tmpl_var name="list_desc_txt"></p>
3-
4-
<div class="panel panel_list_server">
5-
6-
<div class="pnl_toolsarea">
7-
<fieldset><legend>Tools</legend>
8-
<div class="buttons">
9-
<button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/server_edit.php');">
10-
<span>{tmpl_var name="add_new_record_txt"}</span>
11-
</button>
12-
</div>
13-
</fieldset>
14-
</div>
15-
16-
<div class="pnl_listarea">
17-
<fieldset><legend><tmpl_var name="list_head_txt"></legend>
18-
<table class="list">
19-
<thead>
20-
<tr>
21-
<th class="tbl_col_server_name" scope="col"><tmpl_var name="server_name_txt"></th>
22-
<th class="tbl_col_mail_server" scope="col"><tmpl_var name="mail_server_txt"></th>
23-
<th class="tbl_col_web_server" scope="col"><tmpl_var name="web_server_txt"></th>
24-
<th class="tbl_col_dns_server" scope="col"><tmpl_var name="dns_server_txt"></th>
25-
<th class="tbl_col_file_server" scope="col"><tmpl_var name="file_server_txt"></th>
26-
<th class="tbl_col_db_server" scope="col"><tmpl_var name="db_server_txt"></th>
27-
<th class="tbl_col_vserver_server" scope="col"><tmpl_var name="vserver_server_txt"></th>
28-
<th class="tbl_col_buttons" scope="col">&nbsp;</th>
29-
</tr>
30-
<tr>
31-
<td class="tbl_col_server_name"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" /></td>
32-
<td class="tbl_col_mail_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_mail_server'}</select></td>
33-
<td class="tbl_col_web_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_web_server'}</select></td>
34-
<td class="tbl_col_dns_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_dns_server'}</select></td>
35-
<td class="tbl_col_file_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_file_server'}</select></td>
36-
<td class="tbl_col_db_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_db_server'}</select></td>
37-
<td class="tbl_col_vserver_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_vserver_server'}</select></td>
38-
<td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td>
39-
</tr>
40-
</thead>
41-
<tbody>
42-
<tmpl_loop name="records">
43-
<tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
44-
<td class="tbl_col_server_name"><a href="#" onClick="loadContent('admin/server_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_name"}</a></td>
45-
<td class="tbl_col_mail_server">{tmpl_var name="mail_server"}</td>
46-
<td class="tbl_col_web_server">{tmpl_var name="web_server"}</td>
47-
<td class="tbl_col_dns_server">{tmpl_var name="dns_server"}</td>
48-
<td class="tbl_col_file_server">{tmpl_var name="file_server"}</td>
49-
<td class="tbl_col_db_server">{tmpl_var name="db_server"}</td>
50-
<td class="tbl_col_vserver_server">{tmpl_var name="vserver_server"}</td>
51-
<td class="tbl_col_buttons">
52-
<div class="buttons icons16">
53-
<a class="icons16 icoDelete" href="javascript: del_record('admin/server_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>
54-
</div>
55-
</td>
56-
</tr>
57-
</tmpl_loop>
58-
</tbody>
59-
<tfoot>
60-
<tr>
61-
<td class="tbl_footer tbl_paging" colspan="8"><tmpl_var name="paging"></td>
62-
</tr>
63-
</tfoot>
64-
</table>
65-
</fieldset>
66-
</div>
67-
68-
</div>
1+
<h2><tmpl_var name="list_head_txt"></h2>
2+
<p><tmpl_var name="list_desc_txt"></p>
3+
4+
<div class="panel panel_list_server">
5+
6+
<div class="pnl_listarea">
7+
<fieldset><legend><tmpl_var name="list_head_txt"></legend>
8+
<table class="list">
9+
<thead>
10+
<tr>
11+
<th class="tbl_col_server_name" scope="col"><tmpl_var name="server_name_txt"></th>
12+
<th class="tbl_col_mail_server" scope="col"><tmpl_var name="mail_server_txt"></th>
13+
<th class="tbl_col_web_server" scope="col"><tmpl_var name="web_server_txt"></th>
14+
<th class="tbl_col_dns_server" scope="col"><tmpl_var name="dns_server_txt"></th>
15+
<th class="tbl_col_file_server" scope="col"><tmpl_var name="file_server_txt"></th>
16+
<th class="tbl_col_db_server" scope="col"><tmpl_var name="db_server_txt"></th>
17+
<th class="tbl_col_vserver_server" scope="col"><tmpl_var name="vserver_server_txt"></th>
18+
<th class="tbl_col_buttons" scope="col">&nbsp;</th>
19+
</tr>
20+
<tr>
21+
<td class="tbl_col_server_name"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" /></td>
22+
<td class="tbl_col_mail_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_mail_server'}</select></td>
23+
<td class="tbl_col_web_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_web_server'}</select></td>
24+
<td class="tbl_col_dns_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_dns_server'}</select></td>
25+
<td class="tbl_col_file_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_file_server'}</select></td>
26+
<td class="tbl_col_db_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_db_server'}</select></td>
27+
<td class="tbl_col_vserver_server"><select name="search_active" onChange="submitForm('pageForm','admin/server_list.php');">{tmpl_var name='search_vserver_server'}</select></td>
28+
<td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td>
29+
</tr>
30+
</thead>
31+
<tbody>
32+
<tmpl_loop name="records">
33+
<tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
34+
<td class="tbl_col_server_name"><a href="#" onClick="loadContent('admin/server_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_name"}</a></td>
35+
<td class="tbl_col_mail_server">{tmpl_var name="mail_server"}</td>
36+
<td class="tbl_col_web_server">{tmpl_var name="web_server"}</td>
37+
<td class="tbl_col_dns_server">{tmpl_var name="dns_server"}</td>
38+
<td class="tbl_col_file_server">{tmpl_var name="file_server"}</td>
39+
<td class="tbl_col_db_server">{tmpl_var name="db_server"}</td>
40+
<td class="tbl_col_vserver_server">{tmpl_var name="vserver_server"}</td>
41+
<td class="tbl_col_buttons">
42+
<div class="buttons icons16">
43+
<a class="icons16 icoDelete" href="javascript: del_record('admin/server_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>
44+
</div>
45+
</td>
46+
</tr>
47+
</tmpl_loop>
48+
</tbody>
49+
<tfoot>
50+
<tr>
51+
<td class="tbl_footer tbl_paging" colspan="8"><tmpl_var name="paging"></td>
52+
</tr>
53+
</tfoot>
54+
</table>
55+
</fieldset>
56+
</div>
57+
58+
</div>

interface/web/client/client_list.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
$app->uses('listform_actions');
1919

2020
$app->listform_actions->SQLOrderBy = 'ORDER BY company_name, contact_name, client_id';
21+
$app->listform_actions->SQLExtWhere = "limit_client = 0";
2122
$app->listform_actions->onLoad();
2223

2324

0 commit comments

Comments
 (0)