accm
v1.1.8
Published
Node Local Account Management
Downloads
26
Readme
Basic JSON Account Management System for NodeJS
Installation
$ npm install accm
Usage
let accm = require('accm'),
userDb = accm('./path/to/user/database.json');
API
addUser(username, password, role, accountInfo)
username
-String
The username for the account to be created.password
-String
The user's password. Clear-text unless opts.passwordHashed istrue
.- Note: The transmission of clear text passwords is unsafe. Passwords should be encrypted or hashed for transmission.
role
-String | Array[String]
Either a String or an array of Strings indicating the user's role(s).accountInfo
-Object
Additional fields to be copied over to the user object.
removeUser(username)
username
-String
The username for the account to be deleted.
authenticate(username, password)
username
-String
The username for the account that is being logged into.password
-String
The user's password. Clear-text unless opts.passwordHashed istrue
.- Note: The transmission of clear text passwords is unsafe. Passwords should be encrypted or hashed for transmission.
updateAccountField(username, key, value)
username
-String
The username for the account being updated.key
-String
The key to be updated (ie.role
)value
-Any
The value to be stored (ie.Administrator
).
updateRole(username, role)
username
-String
The username for the account being updated.role
-String | Array[String]
Either a String or an array of Strings indicating the user's role(s).
updatePassword(username, newPassword)
username
-String
The username for the account being updated.newPassword
-String
The new password.Note: It is recommended to require users to authenticate prior to allowing password changes.
checkAccess(username, allowedRoleOrRoles)
username
-String
The username for the account that is being checked.allowedRoleOrRoles
-String | Array[String]
Either a String or an array of Strings of the allowed roles.
checkUsernameExists(username)
username
-String
The username being checked.
listUsers()
- Note:
- This lists all users without passwords.
- All fields, including the additional customized fields, will be returned in the user object
- This is ideal for an Administration view listing users for management purposes.
Tests
$ npm test
Note: This requires mocha
, should
, async
, and underscore
.
Current Coverage is:
Statements : 100% ( 62/62 )
Branches : 100% ( 39/39 )
Functions : 100% ( 16/16 )
Lines : 100% ( 56/56 )
Features
- Customizable workflow
- Easily modified
- Hashed passwords using
password-hash
module. - JSON database storage by default (more options coming soon)