Small fix in token generation.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{promisify: $promisify} = require 'bluebird'
|
||||
|
||||
$randomBytes = $promisify (require 'crypto').randomBytes
|
||||
{exists: $fileExists, readFile: $readFile} = require 'fs'
|
||||
|
||||
$base64url = require 'base64url'
|
||||
|
||||
@@ -8,6 +9,11 @@ $base64url = require 'base64url'
|
||||
|
||||
$done = exports.$done = {}
|
||||
|
||||
exports.$fileExists = (path) ->
|
||||
return new Promise (resolve) ->
|
||||
$fileExists path, resolve
|
||||
return
|
||||
|
||||
exports.$generateToken = (n = 32) -> ($randomBytes n).then $base64url
|
||||
|
||||
# Similar to `lodash.map()` for array and `lodash.mapValues()` for objects.
|
||||
@@ -60,18 +66,7 @@ exports.$mapInPlace = (col, iterator, ctx) ->
|
||||
|
||||
return col
|
||||
|
||||
exports.$readFile = $promisify $readFile
|
||||
|
||||
# Wraps a value in a function.
|
||||
exports.$wrap = (val) -> -> val
|
||||
|
||||
#=====================================================================
|
||||
|
||||
$fs = require 'fs'
|
||||
|
||||
$Promise = require 'bluebird'
|
||||
|
||||
exports.$fileExists = (path) ->
|
||||
return new Promise (resolve) ->
|
||||
$fs.exists path, resolve
|
||||
return
|
||||
|
||||
exports.$readFile = $Promise.promisify $fs.readFile
|
||||
|
||||
@@ -19,7 +19,8 @@ $Model = require './model'
|
||||
$RedisCollection = require './collection/redis'
|
||||
$spec = require './spec'
|
||||
$XAPI = require './xapi'
|
||||
{$coroutine, $fiberize, $generateToken, $wait} = require './fibers-utils'
|
||||
{$coroutine, $fiberize, $wait} = require './fibers-utils'
|
||||
{$generateToken} = require './utils'
|
||||
{$MappedCollection} = require './MappedCollection'
|
||||
|
||||
#=====================================================================
|
||||
@@ -35,10 +36,11 @@ class $Servers extends $RedisCollection
|
||||
|
||||
class $Token extends $Model
|
||||
@generate: (userId) ->
|
||||
new $Token {
|
||||
id: $generateToken()
|
||||
user_id: userId
|
||||
}
|
||||
return $generateToken().then (token) ->
|
||||
return new $Token {
|
||||
id: token
|
||||
user_id: userId
|
||||
}
|
||||
|
||||
validate: -> # TODO
|
||||
|
||||
@@ -46,7 +48,8 @@ class $Tokens extends $RedisCollection
|
||||
model: $Token
|
||||
|
||||
generate: (userId) ->
|
||||
@add $Token.generate userId
|
||||
return ($Token.generate userId).then (token) =>
|
||||
return @add token
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
@@ -57,10 +60,14 @@ class $User extends $Model
|
||||
|
||||
validate: -> # TODO
|
||||
|
||||
# FIXME: Async function should be explicit and return promise.
|
||||
setPassword: (password) ->
|
||||
@set 'pw_hash', $wait $hash password
|
||||
return
|
||||
|
||||
# Checks the password and updates the hash if necessary.
|
||||
#
|
||||
# FIXME: Async function should be explicit and return promise.
|
||||
checkPassword: (password) ->
|
||||
hash = @get 'pw_hash'
|
||||
|
||||
@@ -70,7 +77,7 @@ class $User extends $Model
|
||||
if $needsRehash hash
|
||||
@setPassword password
|
||||
|
||||
true
|
||||
return true
|
||||
|
||||
hasPermission: (permission) ->
|
||||
perms = {
|
||||
@@ -85,6 +92,7 @@ class $User extends $Model
|
||||
class $Users extends $RedisCollection
|
||||
model: $User
|
||||
|
||||
# FIXME: Async function should be explicit and return promise.
|
||||
create: (email, password, permission) ->
|
||||
user = new $User {
|
||||
email: email
|
||||
|
||||
Reference in New Issue
Block a user