Have ideas to improve npm?Join in the discussion! »

    accm

    1.1.5 • Public • Published

    Basic JSON Account Management System for NodeJS

    Dependencies Build Status Downloads NPM version Maintainability Known Vulnerabilities

    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 is true.
      • 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 is true.
      • 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)

    Keywords

    none

    Install

    npm i accm

    DownloadsWeekly Downloads

    23

    Version

    1.1.5

    License

    none

    Unpacked Size

    7.91 kB

    Total Files

    3

    Last publish

    Collaborators

    • avatar