mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-03-26 22:16:28 +08:00
passwd -> password
This commit is contained in:
@@ -7,7 +7,7 @@ Request:
|
||||
{
|
||||
"username": "jysperm",
|
||||
"email": "jysperm@gmail.com",
|
||||
"passwd": "passwd"
|
||||
"password": "password"
|
||||
}
|
||||
|
||||
Response:
|
||||
@@ -26,7 +26,7 @@ Exception:
|
||||
* email_exist
|
||||
* invalid_username `/^[0-9a-z_]+$/`
|
||||
* invalid_email `/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/`
|
||||
* invalid_passwd `/^.+$/`
|
||||
* invalid_password `/^.+$/`
|
||||
|
||||
### POST /account/login/
|
||||
|
||||
@@ -35,7 +35,7 @@ Request:
|
||||
{
|
||||
// username or email
|
||||
"username": "jysperm",
|
||||
"passwd": "passwd"
|
||||
"password": "password"
|
||||
}
|
||||
|
||||
Response:
|
||||
@@ -67,13 +67,13 @@ Exception:
|
||||
|
||||
* auth_failed
|
||||
|
||||
### POST /account/update_passwd/
|
||||
### POST /account/update_password/
|
||||
|
||||
Request:
|
||||
|
||||
{
|
||||
"old_passwd": "123456",
|
||||
"new_passwd": "abcdef"
|
||||
"old_password": "123456",
|
||||
"new_password": "abcdef"
|
||||
}
|
||||
|
||||
No Response.
|
||||
|
||||
@@ -56,4 +56,4 @@ module.exports =
|
||||
connection:
|
||||
host: 'localhost'
|
||||
user: 'rpadmin'
|
||||
password: 'passwd'
|
||||
password: 'password'
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"login": "Login",
|
||||
"username": "Username",
|
||||
"email": "E-Mail",
|
||||
"passwd": "Password",
|
||||
"password": "Password",
|
||||
"logout": "Logout"
|
||||
},
|
||||
"panel": {
|
||||
@@ -50,7 +50,7 @@
|
||||
"navigation": "Show Navigation"
|
||||
},
|
||||
"account": {
|
||||
"passwd2": "Repeat Password",
|
||||
"password2": "Repeat Password",
|
||||
"already_signup": "Need an account?",
|
||||
"no_account": "Don't have an account?"
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"login": "登录",
|
||||
"username": "用户名",
|
||||
"email": "邮箱",
|
||||
"passwd": "密码",
|
||||
"password": "密码",
|
||||
"logout": "注销"
|
||||
},
|
||||
"panel": {
|
||||
@@ -63,7 +63,7 @@
|
||||
"navigation": "展开导航"
|
||||
},
|
||||
"account": {
|
||||
"passwd2": "重复",
|
||||
"password2": "重复",
|
||||
"already_signup": "已有帐号?",
|
||||
"no_account": "还没有账户?"
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@ exports.byDepositAddress = exports.buildByXXOO 'bitcoin_deposit_address', export
|
||||
|
||||
sample =
|
||||
username: 'jysperm'
|
||||
passwd: '53673f434686ce045477f066f30eded55a9bb535a6cec7b73a60972ccafddb2a'
|
||||
passwd_salt: '53673f434686b535a6cec7b73a60ce045477f066f30eded55a9b972ccafddb2a'
|
||||
password: '53673f434686ce045477f066f30eded55a9bb535a6cec7b73a60972ccafddb2a'
|
||||
password_salt: '53673f434686b535a6cec7b73a60ce045477f066f30eded55a9b972ccafddb2a'
|
||||
email: 'jysperm@gmail.com'
|
||||
signup_at: Date()
|
||||
|
||||
@@ -66,19 +66,19 @@ exports.sha256 = (data) ->
|
||||
exports.randomSalt = ->
|
||||
return exports.sha256 crypto.randomBytes 256
|
||||
|
||||
exports.hashPasswd = (passwd, passwd_salt) ->
|
||||
return exports.sha256(exports.sha256(passwd) + passwd_salt)
|
||||
exports.hashPassword = (password, password_salt) ->
|
||||
return exports.sha256(exports.sha256(password) + password_salt)
|
||||
|
||||
exports.register = (username, email, passwd, callback) ->
|
||||
passwd_salt = exports.randomSalt()
|
||||
exports.register = (username, email, password, callback) ->
|
||||
password_salt = exports.randomSalt()
|
||||
blockchain_secret = exports.randomSalt()
|
||||
|
||||
bitcoin.genAddress blockchain_secret, (address) ->
|
||||
exports.insert
|
||||
_id: new ObjectID()
|
||||
username: username
|
||||
passwd: exports.hashPasswd(passwd, passwd_salt)
|
||||
passwd_salt: passwd_salt
|
||||
password: exports.hashPassword(password, password_salt)
|
||||
password_salt: password_salt
|
||||
email: email
|
||||
signup_at: new Date()
|
||||
group: []
|
||||
@@ -99,13 +99,13 @@ exports.register = (username, email, passwd, callback) ->
|
||||
, (err, result) ->
|
||||
callback err, result?[0]
|
||||
|
||||
exports.updatePasswd = (account, passwd, callback) ->
|
||||
passwd_salt = exports.randomSalt()
|
||||
exports.updatePassword = (account, password, callback) ->
|
||||
password_salt = exports.randomSalt()
|
||||
|
||||
exports.update _id: account._id,
|
||||
$set:
|
||||
passwd: exports.hashPasswd(passwd, passwd_salt)
|
||||
passwd_salt: passwd_salt
|
||||
password: exports.hashPassword(password, password_salt)
|
||||
password_salt: password_salt
|
||||
, callback
|
||||
|
||||
exports.createToken = (account, attribute, callback) ->
|
||||
@@ -159,8 +159,8 @@ exports.byUsernameOrEmailOrId = (username, callback) ->
|
||||
exports.findId username, (err, account) ->
|
||||
callback null, account
|
||||
|
||||
exports.matchPasswd = (account, passwd) ->
|
||||
return exports.hashPasswd(passwd, account.passwd_salt) == account.passwd
|
||||
exports.matchPassword = (account, password) ->
|
||||
return exports.hashPassword(password, account.password_salt) == account.password
|
||||
|
||||
exports.inGroup = (account, group) ->
|
||||
return group in account.group
|
||||
|
||||
@@ -19,8 +19,8 @@ exports.post '/signup', errorHandling, (req, res) ->
|
||||
unless utils.rx.email.test req.body.email
|
||||
return res.error 'invalid_email'
|
||||
|
||||
unless utils.rx.passwd.test req.body.passwd
|
||||
return res.error 'invalid_passwd'
|
||||
unless utils.rx.password.test req.body.password
|
||||
return res.error 'invalid_password'
|
||||
|
||||
if req.body.username in config.account.invalid_username
|
||||
return res.error 'username_exist'
|
||||
@@ -33,7 +33,7 @@ exports.post '/signup', errorHandling, (req, res) ->
|
||||
if account
|
||||
return res.error 'email_exist'
|
||||
|
||||
mAccount.register req.body.username, req.body.email, req.body.passwd, (err, account) ->
|
||||
mAccount.register req.body.username, req.body.email, req.body.password, (err, account) ->
|
||||
mAccount.createToken account, {}, (err, token)->
|
||||
res.cookie 'token', token,
|
||||
expires: new Date(Date.now() + config.account.cookie_time)
|
||||
@@ -46,7 +46,7 @@ exports.post '/login', errorHandling, (req, res) ->
|
||||
unless account
|
||||
return res.error 'auth_failed'
|
||||
|
||||
unless mAccount.matchPasswd account, req.body.passwd
|
||||
unless mAccount.matchPassword account, req.body.password
|
||||
return res.error 'auth_failed'
|
||||
|
||||
mAccount.createToken account, {}, (err, token) ->
|
||||
@@ -62,12 +62,12 @@ exports.post '/logout', requestAuthenticate, (req, res) ->
|
||||
res.clearCookie 'token'
|
||||
res.json {}
|
||||
|
||||
exports.post '/update_passwd', requestAuthenticate, (req, res) ->
|
||||
unless mAccount.matchPasswd account, req.body.old_passwd
|
||||
exports.post '/update_password', requestAuthenticate, (req, res) ->
|
||||
unless mAccount.matchPassword account, req.body.old_password
|
||||
return res.error 'auth_failed'
|
||||
|
||||
unless utils.rx.passwd.test req.body.passwd
|
||||
return res.error 'invalid_passwd'
|
||||
unless utils.rx.password.test req.body.password
|
||||
return res.error 'invalid_password'
|
||||
|
||||
mAccount.updatePasswd account, req.body.new_passwd, ->
|
||||
mAccount.updatePassword account, req.body.new_password, ->
|
||||
res.json {}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
exports.rx =
|
||||
username: /^[0-9a-z_]{3,23}$/
|
||||
email: /^\w+([-+.]\w+)*@\w+([-+.]\w+)*$/
|
||||
passwd: /^.+$/
|
||||
password: /^.+$/
|
||||
domain: /(\*\.)?[A-Za-z0-9]+(\-[A-Za-z0-9]+)*(\.[A-Za-z0-9]+(\-[A-Za-z0-9]+)*)*/
|
||||
filename: /[A-Za-z0-9_\-\.]+/
|
||||
|
||||
@@ -3,7 +3,7 @@ $ ->
|
||||
e.preventDefault()
|
||||
$.post '/account/login/', JSON.stringify {
|
||||
username : $('#username').val()
|
||||
passwd : $('#passwd').val()
|
||||
password : $('#password').val()
|
||||
}
|
||||
.success ->
|
||||
location.href '/'
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
$ ->
|
||||
$('.signup-btn').on 'click', (e) ->
|
||||
e.preventDefault()
|
||||
if $('#passwd').val() isnt $('#passwd2').val()
|
||||
if $('#password').val() isnt $('#password2').val()
|
||||
ErrorHandle.flushInfo 'alert', '两次密码不一致'
|
||||
else
|
||||
$.post '/account/signup/', JSON.stringify {
|
||||
username: $('#username').val()
|
||||
passwd: $('#passwd').val()
|
||||
password: $('#password').val()
|
||||
email: $('#email').val()
|
||||
}
|
||||
.success ->
|
||||
|
||||
@@ -15,8 +15,8 @@ $ ->
|
||||
ssh.find 'button'
|
||||
.on 'click', (e) ->
|
||||
e.preventDefault()
|
||||
$.post '/plugin/ssh/update_passwd/', JSON.stringify {
|
||||
passwd: ssh.find('input').val()
|
||||
$.post '/plugin/ssh/update_password/', JSON.stringify {
|
||||
password: ssh.find('input').val()
|
||||
}
|
||||
.success ->
|
||||
ErrorHandle.flushInfo 'success', '修改成功', ->
|
||||
@@ -46,8 +46,8 @@ $ ->
|
||||
mysql.find 'button'
|
||||
.on 'click', (e) ->
|
||||
e.preventDefault()
|
||||
$.post '/plugin/mysql/update_passwd/', JSON.stringify {
|
||||
passwd: (mysql.find 'input').val()
|
||||
$.post '/plugin/mysql/update_password/', JSON.stringify {
|
||||
password: (mysql.find 'input').val()
|
||||
}
|
||||
.success ->
|
||||
location.reload()
|
||||
|
||||
@@ -11,9 +11,9 @@ block main
|
||||
.col-sm-5
|
||||
input#username.form-control(type='text', name='username', required)
|
||||
.form-group
|
||||
label.col-sm-2.col-md-offset-1.control-label(for='passwd')= t('account.passwd')
|
||||
label.col-sm-2.col-md-offset-1.control-label(for='password')= t('account.password')
|
||||
.col-sm-5
|
||||
input#passwd.form-control(type='password', name='passwd', required)
|
||||
input#password.form-control(type='password', name='password', required)
|
||||
.form-group
|
||||
.col-sm-offset-3
|
||||
button#login-btn.btn.btn-lg.btn-primary(type='submit')= t('account.login')
|
||||
|
||||
@@ -15,13 +15,13 @@ block main
|
||||
.col-sm-5
|
||||
input#email.form-control(type='email', name='email', required)
|
||||
.form-group
|
||||
label.col-sm-2.col-md-offset-1.control-label(for='passwd')= t('account.passwd')
|
||||
label.col-sm-2.col-md-offset-1.control-label(for='password')= t('account.password')
|
||||
.col-sm-5
|
||||
input#passwd.form-control(type='password', name='passwd', required)
|
||||
input#password.form-control(type='password', name='password', required)
|
||||
.form-group
|
||||
label.col-sm-2.col-md-offset-1.control-label(for='passwd2')= t('view.account.passwd2')
|
||||
label.col-sm-2.col-md-offset-1.control-label(for='password2')= t('view.account.password2')
|
||||
.col-sm-5
|
||||
input#passwd2.form-control(type='password', name='passwd2', required)
|
||||
input#password2.form-control(type='password', name='password2', required)
|
||||
.form-group
|
||||
.col-sm-offset-3
|
||||
button.signup-btn.btn.btn-lg.btn-primary(type='submit')= t('account.signup')
|
||||
|
||||
@@ -10,26 +10,26 @@ REDIS_OVERVIEW = 'rp:linux:overview'
|
||||
ITEM_IN_RESOURCES_LIST = 3600 * 1000 / config.plugins.linux.monitor_cycle
|
||||
|
||||
last_plist = []
|
||||
passwd_cache = {}
|
||||
password_cache = {}
|
||||
|
||||
exports.run = ->
|
||||
setInterval exports.monitoring, config.plugins.linux.monitor_cycle
|
||||
|
||||
exports.loadPasswd = (callback) ->
|
||||
fs.readFile '/etc/passwd', (err, content) ->
|
||||
exports.loadpassword = (callback) ->
|
||||
fs.readFile '/etc/password', (err, content) ->
|
||||
content = content.toString().split '\n'
|
||||
|
||||
passwd_cache = {}
|
||||
password_cache = {}
|
||||
|
||||
for line in content
|
||||
if line
|
||||
[username, passwd, uid] = line.split ':'
|
||||
passwd_cache[uid] = username
|
||||
[username, password, uid] = line.split ':'
|
||||
password_cache[uid] = username
|
||||
|
||||
callback()
|
||||
|
||||
exports.monitoring = ->
|
||||
exports.loadPasswd ->
|
||||
exports.loadpassword ->
|
||||
child_process.exec "ps awufx", (err, stdout, stderr) ->
|
||||
plist = stdout.split('\n')[1...-1]
|
||||
|
||||
@@ -41,8 +41,8 @@ exports.monitoring = ->
|
||||
result = rx.exec item
|
||||
return {
|
||||
user: ->
|
||||
if passwd_cache[result[1]]
|
||||
return passwd_cache[result[1]]
|
||||
if password_cache[result[1]]
|
||||
return password_cache[result[1]]
|
||||
else
|
||||
return result[1]
|
||||
pid: result[2]
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
## MySQL Plugin API
|
||||
|
||||
### POST /plugin/mysql/update_passwd/
|
||||
### POST /plugin/mysql/update_password/
|
||||
|
||||
Request:
|
||||
|
||||
{
|
||||
"passwd": "123123"
|
||||
"password": "123123"
|
||||
}
|
||||
|
||||
No Response.
|
||||
|
||||
Exception:
|
||||
|
||||
* invalid_passwd
|
||||
* invalid_password
|
||||
* not_in_service
|
||||
|
||||
@@ -17,15 +17,15 @@ exports.use (req, res, next) ->
|
||||
req.account = account
|
||||
next()
|
||||
|
||||
exports.post '/update_passwd/', (req, res) ->
|
||||
unless req.body.passwd or not /^[A-Za-z0-9\-_]+$/.test req.body.passwd
|
||||
return res.json 400, error: 'invalid_passwd'
|
||||
exports.post '/update_password/', (req, res) ->
|
||||
unless req.body.password or not /^[A-Za-z0-9\-_]+$/.test req.body.password
|
||||
return res.json 400, error: 'invalid_password'
|
||||
|
||||
plugin.systemOperate (callback) ->
|
||||
connection = mysql.createConnection config.plugins.mysql.connection
|
||||
connection.connect()
|
||||
|
||||
connection.query "SET PASSWORD FOR '#{req.account.username}'@'localhost' = PASSWORD('#{req.body.passwd}');", (err, rows, fields) ->
|
||||
connection.query "SET PASSWORD FOR '#{req.account.username}'@'localhost' = PASSWORD('#{req.body.password}');", (err, rows, fields) ->
|
||||
throw err if err
|
||||
connection.end()
|
||||
callback()
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
## SSH Plugin API
|
||||
|
||||
### POST /plugin/ssh/update_passwd/
|
||||
### POST /plugin/ssh/update_password/
|
||||
|
||||
Request:
|
||||
|
||||
{
|
||||
"passwd": "123123"
|
||||
"password": "123123"
|
||||
}
|
||||
|
||||
No Response.
|
||||
|
||||
Exception:
|
||||
|
||||
* invalid_passwd
|
||||
* invalid_password
|
||||
* not_in_service
|
||||
|
||||
@@ -15,12 +15,12 @@ exports.use (req, res, next) ->
|
||||
|
||||
next()
|
||||
|
||||
exports.post '/update_passwd/', (req, res) ->
|
||||
unless req.body.passwd or not /^[A-Za-z0-9\-_]+$/.test req.body.passwd
|
||||
return res.error 'invalid_passwd'
|
||||
exports.post '/update_password/', (req, res) ->
|
||||
unless req.body.password or not /^[A-Za-z0-9\-_]+$/.test req.body.password
|
||||
return res.error 'invalid_password'
|
||||
|
||||
plugin.systemOperate (callback) ->
|
||||
child_process.exec "echo '#{req.account.username}:#{req.body.passwd}' | sudo chpasswd", (err, stdout, stderr) ->
|
||||
child_process.exec "echo '#{req.account.username}:#{req.body.password}' | sudo chpassword", (err, stdout, stderr) ->
|
||||
throw err if err
|
||||
callback()
|
||||
, ->
|
||||
|
||||
Reference in New Issue
Block a user