Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
ISPConfig 3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lolo888
ISPConfig 3
Commits
cb1aa5f1
Commit
cb1aa5f1
authored
Aug 22, 2012
by
mcramer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Added remoting functions for vhost subdomains
- Added plugin for vhost subdomains to catch onafterinsert/update
parent
aadcccbd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
136 additions
and
0 deletions
+136
-0
interface/lib/classes/remoting.inc.php
interface/lib/classes/remoting.inc.php
+69
-0
interface/lib/plugins/sites_web_vhost_subdomain_plugin.inc.php
...face/lib/plugins/sites_web_vhost_subdomain_plugin.inc.php
+67
-0
No files found.
interface/lib/classes/remoting.inc.php
View file @
cb1aa5f1
...
...
@@ -1474,6 +1474,75 @@ class remoting {
return
$affected_rows
;
}
// ----------------------------------------------------------------------------------------------------------
//* Get record details
public
function
sites_web_vhost_subdomain_get
(
$session_id
,
$primary_id
)
{
global
$app
;
if
(
!
$this
->
checkPerm
(
$session_id
,
'sites_web_subdomain_get'
))
{
$this
->
server
->
fault
(
'permission_denied'
,
'You do not have the permissions to access this function.'
);
return
false
;
}
$app
->
uses
(
'remoting_lib'
);
$app
->
remoting_lib
->
loadFormDef
(
'../sites/form/web_vhost_subdomain.tform.php'
);
return
$app
->
remoting_lib
->
getDataRecord
(
$primary_id
);
}
//* Add a record
public
function
sites_web_vhost_subdomain_add
(
$session_id
,
$client_id
,
$params
)
{
global
$app
;
if
(
!
$this
->
checkPerm
(
$session_id
,
'sites_web_subdomain_add'
))
{
$this
->
server
->
fault
(
'permission_denied'
,
'You do not have the permissions to access this function.'
);
return
false
;
}
//* Set a few params to "not empty" values which get overwritten by the sites_web_domain_plugin
if
(
$params
[
'document_root'
]
==
''
)
$params
[
'document_root'
]
=
'-'
;
if
(
$params
[
'system_user'
]
==
''
)
$params
[
'system_user'
]
=
'-'
;
if
(
$params
[
'system_group'
]
==
''
)
$params
[
'system_group'
]
=
'-'
;
//* Set a few defaults for nginx servers
if
(
$params
[
'pm_max_children'
]
==
''
)
$params
[
'pm_max_children'
]
=
1
;
if
(
$params
[
'pm_start_servers'
]
==
''
)
$params
[
'pm_start_servers'
]
=
1
;
if
(
$params
[
'pm_min_spare_servers'
]
==
''
)
$params
[
'pm_min_spare_servers'
]
=
1
;
if
(
$params
[
'pm_max_spare_servers'
]
==
''
)
$params
[
'pm_max_spare_servers'
]
=
1
;
$domain_id
=
$this
->
insertQuery
(
'../sites/form/web_vhost_subdomain.tform.php'
,
$client_id
,
$params
,
'sites:web_vhost_subdomain:on_after_insert'
);
return
$domain_id
;
}
//* Update a record
public
function
sites_web_vhost_subdomain_update
(
$session_id
,
$client_id
,
$primary_id
,
$params
)
{
if
(
!
$this
->
checkPerm
(
$session_id
,
'sites_web_subdomain_update'
))
{
$this
->
server
->
fault
(
'permission_denied'
,
'You do not have the permissions to access this function.'
);
return
false
;
}
//* Set a few defaults for nginx servers
if
(
$params
[
'pm_max_children'
]
==
''
)
$params
[
'pm_max_children'
]
=
1
;
if
(
$params
[
'pm_start_servers'
]
==
''
)
$params
[
'pm_start_servers'
]
=
1
;
if
(
$params
[
'pm_min_spare_servers'
]
==
''
)
$params
[
'pm_min_spare_servers'
]
=
1
;
if
(
$params
[
'pm_max_spare_servers'
]
==
''
)
$params
[
'pm_max_spare_servers'
]
=
1
;
$affected_rows
=
$this
->
updateQuery
(
'../sites/form/web_vhost_subdomain.tform.php'
,
$client_id
,
$primary_id
,
$params
,
'sites:web_vhost_subdomain:on_after_insert'
);
return
$affected_rows
;
}
//* Delete a record
public
function
sites_web_vhost_subdomain_delete
(
$session_id
,
$primary_id
)
{
if
(
!
$this
->
checkPerm
(
$session_id
,
'sites_web_subdomain_delete'
))
{
$this
->
server
->
fault
(
'permission_denied'
,
'You do not have the permissions to access this function.'
);
return
false
;
}
$affected_rows
=
$this
->
deleteQuery
(
'../sites/form/web_vhost_subdomain.tform.php'
,
$primary_id
);
return
$affected_rows
;
}
// -----------------------------------------------------------------------------------------------
//* Get record details
...
...
interface/lib/plugins/sites_web_vhost_subdomain_plugin.inc.php
0 → 100644
View file @
cb1aa5f1
<?php
/**
* sites_web_domain_plugin plugin
*
* @author Marius Cramer <m.cramer@pixcept.de> pixcept KG 2012, copied and adapted from web_domain plugin by:
* @author Julio Montoya <gugli100@gmail.com> BeezNest 2010
*/
class
sites_web_vhost_subdomain_plugin
{
var
$plugin_name
=
'sites_web_vhost_subdomain_plugin'
;
var
$class_name
=
'sites_web_vhost_subdomain_plugin'
;
// TODO: This function is a duplicate from the one in interface/web/sites/web_vhost_subdomain_edit.php
// There should be a single "token replacement" function to be called from modules and
// from the main code.
// Returna a "3/2/1" path hash from a numeric id '123'
function
id_hash
(
$id
,
$levels
)
{
$hash
=
""
.
$id
%
10
;
$id
/=
10
;
$levels
--
;
while
(
$levels
>
0
)
{
$hash
.
=
"/"
.
$id
%
10
;
$id
/=
10
;
$levels
--
;
}
return
$hash
;
}
/*
This function is called when the plugin is loaded
*/
function
onLoad
()
{
global
$app
;
//Register for the events
// both event call the same function as the things to do do not differ here
$app
->
plugin
->
registerEvent
(
'sites:web_vhost_subdomain:on_after_insert'
,
'sites_web_vhost_subdomain_plugin'
,
'sites_web_vhost_subdomain_edit'
);
$app
->
plugin
->
registerEvent
(
'sites:web_vhost_subdomain:on_after_update'
,
'sites_web_vhost_subdomain_plugin'
,
'sites_web_vhost_subdomain_edit'
);
}
/*
Function to create the sites_web_vhost_subdomain rule and insert it into the custom rules
*/
function
sites_web_vhost_subdomain_edit
(
$event_name
,
$page_form
)
{
global
$app
,
$conf
;
// Get configuration for the web system
$app
->
uses
(
"getconf"
);
$web_rec
=
$app
->
tform
->
getDataRecord
(
$page_form
->
id
);
$web_config
=
$app
->
getconf
->
get_server_config
(
intval
(
$web_rec
[
'server_id'
]),
'web'
);
$parent_domain
=
$app
->
db
->
queryOneRecord
(
"SELECT * FROM `web_domain` WHERE `domain_id` = '"
.
intval
(
$web_rec
[
'parent_domain_id'
])
.
"'"
);
// Set the values for document_root, system_user and system_group
$system_user
=
$app
->
db
->
quote
(
$parent_domain
[
'system_user'
]);
$system_group
=
$app
->
db
->
quote
(
$parent_domain
[
'system_group'
]);
$document_root
=
$app
->
db
->
quote
(
$parent_domain
[
'document_root'
]);
$php_open_basedir
=
str_replace
(
"[website_path]/web"
,
$document_root
.
'/'
.
$web_rec
[
'web_folder'
],
$web_config
[
"php_open_basedir"
]);
$php_open_basedir
=
str_replace
(
"[website_domain]/web"
,
$web_rec
[
'domain'
]
.
'/'
.
$web_rec
[
'web_folder'
],
$php_open_basedir
);
$php_open_basedir
=
str_replace
(
"[website_path]"
,
$document_root
,
$php_open_basedir
);
$php_open_basedir
=
$app
->
db
->
quote
(
str_replace
(
"[website_domain]"
,
$web_rec
[
'domain'
],
$php_open_basedir
));
$htaccess_allow_override
=
$app
->
db
->
quote
(
$parent_domain
[
'allow_override'
]);
$sql
=
"UPDATE web_domain SET sys_groupid = "
.
intval
(
$parent_domain
[
'sys_groupid'
])
.
",system_user = '
$system_user
', system_group = '
$system_group
', document_root = '
$document_root
', allow_override = '
$htaccess_allow_override
', php_open_basedir = '
$php_open_basedir
' WHERE domain_id = "
.
$page_form
->
id
;
$app
->
db
->
query
(
$sql
);
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment