mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-01-12 22:27:09 +08:00
fixbugs in linux plugin
This commit is contained in:
@@ -3,6 +3,7 @@ nodemailer = require 'nodemailer'
|
||||
path = require 'path'
|
||||
harp = require 'harp'
|
||||
fs = require 'fs'
|
||||
morgan = require 'morgan'
|
||||
moment = require 'moment-timezone'
|
||||
redis = require 'redis'
|
||||
express = require 'express'
|
||||
@@ -83,7 +84,7 @@ exports.run = ->
|
||||
|
||||
app.use connect.json()
|
||||
app.use connect.urlencoded()
|
||||
app.use connect.logger()
|
||||
app.use morgan('dev')
|
||||
app.use require('cookie-parser')()
|
||||
|
||||
app.use require 'middleware-injector'
|
||||
|
||||
@@ -123,7 +123,12 @@ exports.joinPlan = (req, account, plan_name, callback) ->
|
||||
hook.action req, callback
|
||||
, callback
|
||||
, ->
|
||||
callback()
|
||||
unless stringify(original_account.resources_limit) == stringify(account.resources_limit)
|
||||
async.each pluggable.selectHook(account, 'account.resources_limit_changed'), (hook, callback) ->
|
||||
hook.action account, callback
|
||||
, callback
|
||||
else
|
||||
callback()
|
||||
|
||||
exports.leavePlan = (req, account, plan_name, callback) ->
|
||||
leaved_services = _.reject account.billing.services, (service_name) ->
|
||||
@@ -133,8 +138,7 @@ exports.leavePlan = (req, account, plan_name, callback) ->
|
||||
|
||||
return false
|
||||
|
||||
original_resources_limit = account.resources_limit
|
||||
new_resources_limit = exports.calcResourcesLimit _.without account.billing.plans, plan_name
|
||||
original_account = account
|
||||
|
||||
modifier =
|
||||
$pull:
|
||||
@@ -142,7 +146,7 @@ exports.leavePlan = (req, account, plan_name, callback) ->
|
||||
$pullAll:
|
||||
'billing.services': leaved_services
|
||||
$set:
|
||||
'resources_limit': new_resources_limit
|
||||
'resources_limit': exports.calcResourcesLimit _.without account.billing.plans, plan_name
|
||||
$unset: {}
|
||||
|
||||
modifier.$unset["billing.last_billing_at.#{plan_name}"] = true
|
||||
@@ -151,11 +155,11 @@ exports.leavePlan = (req, account, plan_name, callback) ->
|
||||
new: true
|
||||
, (err, account) ->
|
||||
async.each leaved_services, (service_name, callback) ->
|
||||
async.each pluggable.selectHook(account, "service.#{service_name}.disable"), (hook, callback) ->
|
||||
async.each pluggable.selectHook(original_account, "service.#{service_name}.disable"), (hook, callback) ->
|
||||
hook.action req, callback
|
||||
, callback
|
||||
, ->
|
||||
unless stringify(original_resources_limit) == stringify(new_resources_limit)
|
||||
unless stringify(original_account.resources_limit) == stringify(account.resources_limit)
|
||||
async.each pluggable.selectHook(account, 'account.resources_limit_changed'), (hook, callback) ->
|
||||
hook.action account, callback
|
||||
, callback
|
||||
|
||||
@@ -97,7 +97,7 @@ exports.register = (account, callback) ->
|
||||
|
||||
tokens: []
|
||||
|
||||
async.each pluggable.selectHook({meta: 'any'}, 'account.before_register'), (hook, callback) ->
|
||||
async.each pluggable.selectHook(account, 'account.before_register'), (hook, callback) ->
|
||||
hook.filter account, callback
|
||||
, ->
|
||||
exports.insert account, (err, result) ->
|
||||
|
||||
@@ -10,12 +10,17 @@ config = require './../config'
|
||||
|
||||
exports.plugins = {}
|
||||
|
||||
hookHelper = (options) ->
|
||||
return _.extend [], options
|
||||
|
||||
exports.hooks =
|
||||
account:
|
||||
# filter: function(username, callback(is_allow))
|
||||
username_filter: []
|
||||
username_filter: hookHelper
|
||||
always_notice: true
|
||||
# filter: function(account, callback)
|
||||
before_register: []
|
||||
before_register: hookHelper
|
||||
always_notice: true
|
||||
# action: function(account, callback)
|
||||
resources_limit_changed: []
|
||||
|
||||
@@ -100,10 +105,10 @@ exports.selectHook = (account, hook_name) ->
|
||||
return _.filter pointer, (hook) ->
|
||||
if hook.plugin_info.type == 'extension'
|
||||
return true
|
||||
else if pointer.always_notice or hook.always_notice
|
||||
return true
|
||||
else if !account
|
||||
return false
|
||||
else if account.meta == 'any'
|
||||
return true
|
||||
else if hook.plugin_info.name in account.billing.services
|
||||
return true
|
||||
else
|
||||
|
||||
@@ -27,7 +27,7 @@ exports.post '/register', errorHandling, (req, res) ->
|
||||
unless utils.rx.password.test req.body.password
|
||||
return res.error 'invalid_password'
|
||||
|
||||
async.each pluggable.selectHook({meta: 'any'}, 'account.username_filter'), (hook, callback) ->
|
||||
async.each pluggable.selectHook(null, 'account.username_filter'), (hook, callback) ->
|
||||
hook.filter req.body.username, (is_allow) ->
|
||||
if is_allow
|
||||
callback()
|
||||
|
||||
@@ -10,7 +10,7 @@ block main
|
||||
.form-group
|
||||
label.col-sm-2.col-md-offset-1.control-label= t('view.preferences.qq')
|
||||
.col-sm-5
|
||||
input.input-qq.form-control(type='text', value=account.settings.qq)
|
||||
input.input-qq.form-control(type='text', value=account.preferences.qq)
|
||||
.form-group
|
||||
.col-sm-offset-3
|
||||
button.action-save.btn.btn-lg.btn-success(type='button')= t('common.save')
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"cookie-parser": "^1.3.3",
|
||||
"csrf": "^2.0.1",
|
||||
"connect-redis": "^2.0.1",
|
||||
"express-session": "^1.8.2"
|
||||
"express-session": "^1.8.2",
|
||||
"morgan": "^1.3.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ exports.registerHook 'view.panel.widgets',
|
||||
callback html
|
||||
|
||||
exports.registerHook 'account.resources_limit_changed',
|
||||
always_notice: true
|
||||
action: (account, callback) ->
|
||||
linux.setResourceLimit account, callback
|
||||
|
||||
|
||||
@@ -25,7 +25,8 @@ exports.createUser = (account, callback) ->
|
||||
exports.deleteUser = (account, callback) ->
|
||||
async.series [
|
||||
(callback) ->
|
||||
child_process.exec "sudo pkill -u #{account.username}", callback
|
||||
child_process.exec "sudo pkill -u #{account.username}", ->
|
||||
callback()
|
||||
|
||||
(callback) ->
|
||||
child_process.exec "sudo userdel -rf #{account.username}", callback
|
||||
@@ -39,6 +40,9 @@ exports.deleteUser = (account, callback) ->
|
||||
callback()
|
||||
|
||||
exports.setResourceLimit = (account, callback) ->
|
||||
unless 'linux' in account.billing.services
|
||||
return callback()
|
||||
|
||||
storage_limit = account.resources_limit.storage
|
||||
soft_limit = (storage_limit * 1024 * 0.8).toFixed()
|
||||
hard_limit = (storage_limit * 1024 * 1.2).toFixed()
|
||||
|
||||
Reference in New Issue
Block a user