Gatepass
Short description and motivation.
Usage
See the Installation section below.
For setting up a DEV environment, clone the directory within a rails project and add to the Gemfile:
gem 'gatepass', path: 'gatepass'
OR
gem 'gatepass', git: 'https://github.com/pockettheories/gatepass'
See Bundle Git Guide for more
Installation
Add this line to your application's Gemfile:
gem "gatepass"
And then execute:
$ bundle
Or install it yourself as:
$ gem install gatepass
OR
$ bundle add gatepass
Mount the engine with the following line in config/routes.rb
:
mount Gatepass::Engine => '/gatepass'
Ensure you also have the root configured (Eg. root 'home#index''
) for your Rails application.
Modify the application controller to include the Gatepass module and add the authentication check:
class ApplicationController < ActionController::Base
include Gatepass
before_action :check_authenticated
end
In config/application.rb
, define the following configuration parameters:
config.ldap_server_hostname = 'myldap.com'
config.ldap_server_port = 636
config.ldap_ca_cert = '/etc/path/ca.cert'
config.ldap_base = 'DN=myldap,DN=com'
Run the migrations with:
rails gatepass:install:migrations
rails db:migrate
Create an initial user account with:
$ rails c
u1 = Gatepass::User.new
u1.username = 'nitin'
u1.password = 'green'
u1.auth_type = 'local'
u1.save
Create an initial ActiveDirectory user account with:
$ rails c
u1 = Gatepass::User.new
u1.username = 'reddy'
u1.password = 'dummy'
u1.auth_type = 'activedirectory'
u1.rolename = 'admin'
u1.username_mapping = 'CN=reddy,CN=Users,DC=pockettheories,DC=com'
u1.save
Login with the above account, and access the user account management page at: http://localhost:3000/gatepass/users
The logout URL is: http://localhost:3000/gatepass/authentication/logout
Other Notes
The User model has the fields: username:string auth_type:string password_digest:string username_mapping:string
auth_type is local
or activedirectory
.
Use a dummy password for activedirectory users.
If you get the error "SSL_CTX_load_verify_file: system lib" when attempting to login as an ActiveDirectory user, it's Ruby complaining about your OpenSSL version. (On MacOS Ventura 13.4.1, rbenv with Ruby 3.1.0 works; Ruby 3.2.2 doesn't)
Contributing
Create a pull request on GitHub.
License
The gem is available as open source under the terms of the MIT License.