accm
v1.1.9
Published
Node Local Account Management
Readme
Basic JSON Account Management System for NodeJS
Installation
$ npm install accmUsage
let accm = require('accm'),
userDb = accm('./path/to/user/database.json');API
addUser(username, password, role, accountInfo)
username-StringThe username for the account to be created.password-StringThe 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-ObjectAdditional fields to be copied over to the user object.
removeUser(username)
username-StringThe username for the account to be deleted.
authenticate(username, password)
username-StringThe username for the account that is being logged into.password-StringThe 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-StringThe username for the account being updated.key-StringThe key to be updated (ie.role)value-AnyThe value to be stored (ie.Administrator).
updateRole(username, role)
username-StringThe 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-StringThe username for the account being updated.newPassword-StringThe new password.Note: It is recommended to require users to authenticate prior to allowing password changes.
checkAccess(username, allowedRoleOrRoles)
username-StringThe 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-StringThe 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 testNote: 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-hashmodule. - JSON database storage by default (more options coming soon)
