mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-03-28 07:28:57 +08:00
nginx modify site
This commit is contained in:
@@ -40,6 +40,9 @@ sample =
|
||||
phpfpm:
|
||||
is_enbale: false
|
||||
|
||||
nginx:
|
||||
sites: []
|
||||
|
||||
resources_limit:
|
||||
cpu: 144
|
||||
storage: 520
|
||||
|
||||
@@ -19,4 +19,5 @@ Exception:
|
||||
* not_in_service
|
||||
* invalid_action
|
||||
* invalid_type
|
||||
* forbidden
|
||||
|
||||
|
||||
@@ -25,6 +25,9 @@ sample =
|
||||
fastcgi_pass: 'unix:///home/user/phpfpm.sock'
|
||||
fastcgi_index: ['index.php']
|
||||
|
||||
assertJsonConfig = (config) ->
|
||||
|
||||
|
||||
exports.use (req, res, next) ->
|
||||
req.inject [requestAuthenticate], ->
|
||||
unless 'nginx' in req.account.attribute.services
|
||||
@@ -36,7 +39,60 @@ exports.post '/update_site/', (req, res) ->
|
||||
unless req.body.action in ['create', 'update', 'delete']
|
||||
return res.error 'invalid_action'
|
||||
|
||||
if req.body.type == 'json'
|
||||
checkSite = (callback) ->
|
||||
if req.body.action == 'create'
|
||||
callback null
|
||||
else
|
||||
mAccount.findOne
|
||||
'attribute.plugin.nginx.sites._id': new ObjectID req.body.id
|
||||
, (err, account) ->
|
||||
if account?._id.toString() == req.account._id.toString()
|
||||
callback null
|
||||
else
|
||||
callback true
|
||||
|
||||
else
|
||||
return res.json 'invalid_type'
|
||||
checkSiteConfig = (callback) ->
|
||||
unless req.body.action == 'delete'
|
||||
if req.body.type == 'json'
|
||||
err = assertJsonConfig req.body.config
|
||||
|
||||
if err
|
||||
callback err
|
||||
else
|
||||
callback null
|
||||
else
|
||||
callback 'invalid_type'
|
||||
else
|
||||
callback null
|
||||
|
||||
checkSite (err) ->
|
||||
if err
|
||||
return res.error 'forbidden'
|
||||
|
||||
checkSiteConfig (err) ->
|
||||
if err
|
||||
return res.json err
|
||||
|
||||
removeSite = (callback) ->
|
||||
mAccount.update _id: account._id,
|
||||
$pull:
|
||||
'attribute.plugin.nginx.sites': new ObjectID req.body.id
|
||||
, callback
|
||||
|
||||
addSite = (callback) ->
|
||||
mAccount.update _id: req.account._id,
|
||||
$push:
|
||||
'attribute.plugin.nginx.sites': req.body.config
|
||||
, callback
|
||||
|
||||
execModification = (callback) ->
|
||||
if req.body.action = 'create'
|
||||
addSite callback
|
||||
else if req.body.action = 'update'
|
||||
removeSite ->
|
||||
addSite callback
|
||||
else if req.body.action = 'delete'
|
||||
removeSite callback
|
||||
|
||||
execModification ->
|
||||
res.json {}
|
||||
|
||||
Reference in New Issue
Block a user