A sub-application for adding user capability to a website.
Go to file
2018-05-11 14:17:02 -07:00
models reinitialized 2018-03-02 10:45:36 -08:00
views reinitialized 2018-03-02 10:45:36 -08:00
.gitignore reinitialized 2018-03-02 10:45:36 -08:00
LICENSE reinitialized 2018-03-02 10:45:36 -08:00
locator_config.moon reinitialized 2018-03-02 10:45:36 -08:00
migrations.moon fix #16 not null email requirement removed 2018-05-11 14:17:02 -07:00
ReadMe.md reinitialized 2018-03-02 10:45:36 -08:00
users.moon user logout will now announce a successful logout 2018-03-02 10:58:31 -08:00

Installation

(Note: These instructions need to be rewritten for use with the new service locator and utility modules I've made recently.)

  1. From application root: git submodule add https://github.com/lazuscripts/users users

  2. Inside your application: @include "users/users"

  3. In migrations, do the following:

    import create_table, types from require "lapis.db.schema"
    create_table "users", {
        {"id", types.serial primary_key: true}
        {"name", types.varchar unique: true}
        {"digest", types.text}
        {"admin", types.boolean default: false}
    }
    
  4. bcrypt Lua Rock must be installed!

  5. If @session.redirect is defined when going to the login route, a user will be redirected there after logging in.

Note: Assumes you have a route named "index" to redirect to when things go wrong.

WARNING: Now expects you to display informational messages stored in @session.info.

Config

digest_rounds 9 must be set. Use a higher or lower number depending on how long it takes to calculate a digest or how paranoid you want to be. See this bit about tuning: https://github.com/mikejsavage/lua-bcrypt#tuning

Access

To get the Users model for use outside of this sub-application:
Users = require "users.models.Users"

Named routes:

  • user_new
  • user_me
  • user_admin
  • user_edit
  • user_login
  • user_logout
  • user_list