# Trestle Authentication (trestle-auth) [![RubyGem](https://img.shields.io/gem/v/trestle-auth.svg?style=flat&colorB=4065a9)](https://rubygems.org/gems/trestle-auth) [![Travis](https://img.shields.io/travis/TrestleAdmin/trestle-auth.svg?style=flat)](https://travis-ci.org/TrestleAdmin/trestle-auth) [![Coveralls](https://img.shields.io/coveralls/TrestleAdmin/trestle-auth.svg?style=flat)](https://coveralls.io/github/TrestleAdmin/trestle-auth) > Authentication plugin for the Trestle admin framework ## Getting Started These instructions assume you have a working Trestle application. See the [Getting Started](https://github.com/TrestleAdmin/trestle#getting-started) section in the Trestle README. To integrate trestle-auth, first add it to your application's Gemfile, and then run `bundle install`: ```ruby gem 'trestle-auth' ``` As of version 0.4.0, trestle-auth now supports multiple authentication backends including Devise/Warden. ### Option 1: Built-in Integration Run the install generator to add the configuration to `config/initializers/trestle.rb`, and generate a `User` model and admin resource. $ rails generate trestle:auth:install User (if no user model name is specified it will default to `Administrator`) Then run your migrations with `rake db:migrate` and create an initial admin user from within `rails console`: ```ruby User.create(email: "admin@example.com", password: "password", first_name: "Admin", last_name: "User") ``` After restarting your Rails server, any attempt to access a page within your admin will redirect you to the login page. ### Option 2: Devise Integration If you already have an existing user model and Devise integration, you can configure trestle-auth to use that instead. $ rails generate trestle:auth:install User --devise Replace `User` with the name of your Devise user model. If not specified, it will default to `Administrator`. ## Configuration After running the `trestle:auth:install` generator, check your `config/initializers/trestle.rb` for further configuration options. ## License The gem is available as open source under the terms of the [LGPLv3 License](https://opensource.org/licenses/LGPL-3.0).