auther 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 093c3e3b89c2368100edded3b52d2d3a11461031
4
+ data.tar.gz: 7e351f9e60c11c0e4336c4795dff68e4f0fdd5dd
5
+ SHA512:
6
+ metadata.gz: 40258f7e43264a953509038a46472a43f1ee56acd71818cda863446bbdc356aae0dba2ac70672cd042ea9917a346eec42b03669d7ce00607fa014b4a700fe85d
7
+ data.tar.gz: 3e8a937baaa20506299883b701f35aeb268200c318d468ddc0fb66c993026f989ba6a0843b0ec167c83a32d18733d1a23e33bfe00f09fcb0d5cd10fb3aa28285
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ 2��B ��.��f���q�<�͠�%�m��)e ��\��9�+�k�ʙ邽\ޅ��JLs�A�X��0=�,�= D{�D��$�4�[����.m�9�Ӝ����sߴ�ѻ�������]q`�s##��-��)��љ�G�VT���m/�ڢ�h���.��6�#B+)�Hj9�h�_$A1�k�_�7A�'�[�ff���
2
+ �u����Ƿ�]�
data/LICENSE.md ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2014 [Red Alchemist](http://www.redalchemist.com).
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,100 @@
1
+ # Overview
2
+
3
+ Provides simple, form-based authentication for apps that need security but don't want to use the clunky UI of
4
+ HTTP Basic Authentication and/or want to be compatible with password managers.
5
+
6
+ [![Gem Version](https://badge.fury.io/rb/auther.png)](http://badge.fury.io/rb/auther)
7
+ [![Code Climate GPA](https://codeclimate.com/github/bkuhlmann/auther.png)](https://codeclimate.com/github/bkuhlmann/auther)
8
+ [![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/auther.png)](http://travis-ci.org/bkuhlmann/auther)
9
+
10
+ # Features
11
+
12
+ * Form-based authentication compatible with password managers like [1Password](https://agilebits.com/onepassword).
13
+ * Multiple account support with account specific blacklisted paths.
14
+ * Auto-redirection to blacklisted path (once credentials have been verified).
15
+ * Customizable session view.
16
+ * Customizable session controller.
17
+
18
+ # Requirements
19
+
20
+ 0. [Ruby 2.x.x](http://www.ruby-lang.org).
21
+ 0. [Ruby on Rails 4.x.x](http://rubyonrails.org).
22
+
23
+ # Setup
24
+
25
+ Type the following from the command line to securely install (recommended):
26
+
27
+ gem cert --add <(curl -Ls http://www.redalchemist.com/gem-public.pem)
28
+ gem install auther -P HighSecurity
29
+
30
+ ...or type the following to insecurely install (not recommended):
31
+
32
+ gem install auther
33
+
34
+ Add the following to your Gemfile:
35
+
36
+ gem "auther"
37
+
38
+ # Usage
39
+
40
+ Edit your routes.rb as follows:
41
+
42
+ Rails.application.routes.draw do
43
+ mount Auther::Engine => "/auther"
44
+ end
45
+
46
+ Edit your application.rb as follows:
47
+
48
+ module Example
49
+ class Application < Rails::Application
50
+ config.auther_settings = {
51
+ accounts: [
52
+ {
53
+ name: "test",
54
+ login: "test@test.com",
55
+ password: "password",
56
+ paths: ["/admin"]
57
+ }
58
+ ],
59
+ auth_url: "/auther/session/new"
60
+ }
61
+ end
62
+ end
63
+
64
+ # Customization
65
+
66
+ Don't like the default authorization form? No problem, simply create the following file within your Rails application
67
+ to override the form provided by this engine and customize as you see fit:
68
+
69
+ app/views/auther/session/new.html
70
+
71
+ # Tests
72
+
73
+ To test, do the following:
74
+
75
+ 0. cd to the gem root.
76
+ 0. bundle install
77
+ 0. bundle exec rspec spec
78
+
79
+ # Resources
80
+
81
+ * [Simplest Auth](https://github.com/vigetlabs/simplest_auth) - For situations where you need user and email reset
82
+ support beyond what this engine can provide.
83
+
84
+ # Contributions
85
+
86
+ Read CONTRIBUTING for details.
87
+
88
+ # Credits
89
+
90
+ Developed by [Brooke Kuhlmann](http://www.redalchemist.com) at [Red Alchemist](http://www.redalchemist.com).
91
+
92
+ # License
93
+
94
+ Copyright (c) 2014 [Red Alchemist](http://www.redalchemist.com).
95
+ Read the LICENSE for details.
96
+
97
+ # History
98
+
99
+ Read the CHANGELOG for details.
100
+ Built with [Gemsmith](https://github.com/bkuhlmann/gemsmith).
File without changes
@@ -0,0 +1,45 @@
1
+ .auther-form {
2
+ font-family: "Helvetica","Times New Roman","Georgia","Serif";
3
+ background-color: rgba(198,198,198,1);
4
+ border: solid black 0.1em;
5
+ width: 20em;
6
+ margin: 0 auto;
7
+ padding: 1em;
8
+ -webkit-border-radius: 0.5em; -moz-border-radius: 0.5em; border-radius: 0.5em;
9
+
10
+ .row {
11
+ &:after {
12
+ content: "";
13
+ display: table;
14
+ clear: both;
15
+ }
16
+ }
17
+
18
+ .title {
19
+ margin-top: 0;
20
+ text-align: center;
21
+ }
22
+
23
+ .label {
24
+ margin: 0 0 1em 0;
25
+ float: left;
26
+ }
27
+
28
+ .input {
29
+ margin: 0 0 1em 0;
30
+ float: right;
31
+ input {
32
+ width: 15em;
33
+ }
34
+ }
35
+
36
+ .actions {
37
+ text-align: center;
38
+ input {
39
+ color: rgba(255,255,255,1);
40
+ background-color: rgba(0,140,186,1);
41
+ width: 15em;
42
+ }
43
+ }
44
+ }
45
+
@@ -0,0 +1,4 @@
1
+ module Auther
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,31 @@
1
+ class Auther::SessionController < ApplicationController
2
+ layout "auther/auth"
3
+
4
+ def show
5
+ redirect_to action: :new
6
+ end
7
+
8
+ def new
9
+ end
10
+
11
+ def create
12
+ settings = Rails.application.config.auther_settings
13
+ account = settings.fetch(:accounts).select { |account| account.fetch(:login) == params[:login] }.first
14
+
15
+ if account
16
+ keymaster = Auther::Keymaster.new account[:name]
17
+ session[keymaster.login_key] = params[:login]
18
+ session[keymaster.password_key] = params[:password]
19
+ redirect_to session["auther_redirect_url"] || '/'
20
+ else
21
+ render template: "auther/session/new"
22
+ end
23
+ end
24
+
25
+ def destroy
26
+ keymaster = Auther::Keymaster.new params[:account_name]
27
+ session.delete keymaster.login_key
28
+ session.delete keymaster.password_key
29
+ redirect_to action: :new
30
+ end
31
+ end
@@ -0,0 +1,4 @@
1
+ module Auther
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,19 @@
1
+ = form_tag "/auther/session", class: "auther-form"
2
+ .row
3
+ h1.title Authorization
4
+
5
+ .row
6
+ .label
7
+ = label_tag :login, "Login:"
8
+ .input
9
+ = text_field_tag :login, nil
10
+
11
+ .row
12
+ .label
13
+ = label_tag :password, "Password:"
14
+ .input
15
+ = password_field_tag :password, nil
16
+
17
+ .row
18
+ .actions
19
+ = submit_tag "Login", class: "btn btn-primary"
@@ -0,0 +1,10 @@
1
+ head
2
+ meta charset="utf-8"
3
+ meta name="viewport" content="width=device-width, initial-scale=1.0"
4
+ title Authorization
5
+
6
+ = stylesheet_link_tag "auther/application", media: "all"
7
+ = csrf_meta_tags
8
+ body
9
+ = yield
10
+ = javascript_include_tag "auther/application"
data/bin/rails ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/auther/engine', __FILE__)
6
+
7
+ require 'rails/all'
8
+ require 'rails/engine/commands'
data/config/routes.rb ADDED
@@ -0,0 +1,4 @@
1
+ Auther::Engine.routes.draw do
2
+ root to: "session#new"
3
+ resource :session, controller: "session", only: [:show, :new, :create, :destroy]
4
+ end
data/lib/auther.rb ADDED
@@ -0,0 +1,4 @@
1
+ require "slim-rails"
2
+ require "auther/keymaster"
3
+ require "auther/gatekeeper"
4
+ require "auther/engine"
@@ -0,0 +1,13 @@
1
+ module Auther
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Auther
4
+
5
+ # Set defaults. Can be overwritten in app config.
6
+ config.auther_settings = {}
7
+
8
+ initializer "auther.initialize" do |app|
9
+ # Initialize Gatekeeper middleware.
10
+ app.config.app_middleware.use Auther::Gatekeeper, app.config.auther_settings
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,57 @@
1
+ module Auther
2
+ class Gatekeeper
3
+ attr_reader :application, :settings
4
+
5
+ def initialize application, settings = []
6
+ @application = application
7
+ @settings = settings
8
+ end
9
+
10
+ def call env
11
+ session = env.fetch "rack.session"
12
+ request_path = env["PATH_INFO"]
13
+
14
+ if authorized?(env, request_path)
15
+ application.call env
16
+ else
17
+ session[Auther::Keymaster.redirect_url_key] = request_path
18
+ response = Rack::Response.new
19
+ response.redirect settings[:auth_url]
20
+ response.finish
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def find_account env
27
+ session = env.fetch "rack.session"
28
+ session["auther_init"] = true # Force session to initialize.
29
+ account_name = Auther::Keymaster.get_account_name session
30
+ settings.fetch(:accounts).select { |account| account.fetch(:name) == account_name }.first
31
+ end
32
+
33
+ def blacklisted_path? path
34
+ blacklisted_paths = settings.fetch(:accounts).map {|account| account.fetch :paths }.flatten
35
+ blacklisted_paths.map { |blacklisted_path| path.include? blacklisted_path }.any?
36
+ end
37
+
38
+ def blacklisted_account? account, path
39
+ account.fetch(:paths).include? path
40
+ end
41
+
42
+ def authenticated? env, account
43
+ session = env.fetch "rack.session"
44
+ keymaster = Auther::Keymaster.new account.fetch(:name)
45
+ session[keymaster.login_key] == account.fetch(:login) && session[keymaster.password_key] == account.fetch(:password)
46
+ end
47
+
48
+ def authorized? env, path
49
+ if blacklisted_path?(path)
50
+ account = find_account env
51
+ account && authenticated?(env, account) && !blacklisted_account?(account, path)
52
+ else
53
+ true
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,42 @@
1
+ module Auther
2
+ class Keymaster
3
+ attr_reader :account_name
4
+
5
+ def self.namespace
6
+ "auther"
7
+ end
8
+
9
+ def self.redirect_url_key delimiter: '_'
10
+ [namespace, "redirect", "url"] * delimiter
11
+ end
12
+
13
+ def self.get_account_name session = {}
14
+ matching_keys = session.keys.select { |key| key.to_s =~ /auther.+login/ }
15
+ key = matching_keys.first || ''
16
+ key.gsub("#{namespace}_", '').gsub "_login", ''
17
+ end
18
+
19
+ def self.get_account_login session = {}
20
+ account_name = get_account_name session
21
+ session[new(account_name).login_key]
22
+ end
23
+
24
+ def initialize account_name = nil
25
+ @account_name = account_name
26
+ end
27
+
28
+ def login_key
29
+ build_key "login"
30
+ end
31
+
32
+ def password_key
33
+ build_key "password"
34
+ end
35
+
36
+ private
37
+
38
+ def build_key key_name, delimiter: '_'
39
+ [self.class.namespace, account_name, key_name].compact * delimiter
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,3 @@
1
+ module Auther
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,296 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: auther
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Brooke Kuhlmann
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDhTCCAm2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQ8wDQYDVQQDDAZicm9v
14
+ a2UxHDAaBgoJkiaJk/IsZAEZFgxyZWRhbGNoZW1pc3QxEzARBgoJkiaJk/IsZAEZ
15
+ FgNjb20wHhcNMTMwNjI1MDEzOTUyWhcNMTQwNjI1MDEzOTUyWjBEMQ8wDQYDVQQD
16
+ DAZicm9va2UxHDAaBgoJkiaJk/IsZAEZFgxyZWRhbGNoZW1pc3QxEzARBgoJkiaJ
17
+ k/IsZAEZFgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCoICuy
18
+ DEfASTaScwJxS+wuGY729rx9X6KWktpiee5UT0hSZ8RBum1PU5pfgXdZcZ9rOiGC
19
+ 66qjTN7I08FWpnoz/11M9Wcqd5k1aJXnXeCKRjWmgrnqY2ecbM6CR2OhSIe63l1I
20
+ wNg9ZTx6h2S8AcdJa2cs1kGO0/NZ5PqKn8ZSFUfByJIIP6ygas7MFIh9EuDs+bTU
21
+ OVrOAtfC8rZKZ7iFhPwMeRfn4PnR/q0xfK6UXjjr7ES67/qjAbioZaNfubbe+bc7
22
+ aRcWYGTG8cFuM0PnX4dr2p3ZRXmOYwt+dcZxRZxG099v4IsC0hwttgES64BfDiQc
23
+ PrqZFq63Lzc/j+eBAgMBAAGjgYEwfzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAd
24
+ BgNVHQ4EFgQU43tA2HIdqx0YsONzs1fL6z8l4WQwIgYDVR0RBBswGYEXYnJvb2tl
25
+ QHJlZGFsY2hlbWlzdC5jb20wIgYDVR0SBBswGYEXYnJvb2tlQHJlZGFsY2hlbWlz
26
+ dC5jb20wDQYJKoZIhvcNAQEFBQADggEBADZi/zTFe3ZJ87QbGmqIadqGeqy27/KZ
27
+ tIO5rX7kPoFwIdFyW8XekozEPaWDpwRQ/E0LVz1f/7U6VEmp30tpOgXqHS7GkAlz
28
+ Q1bZjlDMkosXIYd737LfjaQB5YqzoUMWdbPmX5oKXmQMy416GrcLZXW22u5HtrHN
29
+ AT6fTCYrKaY9LWcugrGU7puOo0itBjLUC0YxtBnDGV8h0Fop9DHQ6gATPweQ7R1j
30
+ SJpzzzZ8gO6BKn4fhd+ENNQ333Qy3nuNk07TVIaNnlgeHhowUDuD9T7Z8Lka0pt3
31
+ 4PteiTppsf0SSVAM9zSO5IuFngXMRwWgvjOfXE70f43RDuUVTCSyylc=
32
+ -----END CERTIFICATE-----
33
+ date: 2014-01-10 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rails
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '4.0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '4.0'
49
+ - !ruby/object:Gem::Dependency
50
+ name: slim-rails
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '2.0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: sass-rails
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '4.0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '4.0'
77
+ - !ruby/object:Gem::Dependency
78
+ name: rake
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '10.0'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '10.0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: pry
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ - !ruby/object:Gem::Dependency
106
+ name: pry-byebug
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: pry-remote
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ - !ruby/object:Gem::Dependency
134
+ name: pry-rescue
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ - !ruby/object:Gem::Dependency
148
+ name: pry-stack_explorer
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ - !ruby/object:Gem::Dependency
162
+ name: pry-vterm_aliases
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: pry-git
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ - !ruby/object:Gem::Dependency
190
+ name: pry-doc
191
+ requirement: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ type: :development
197
+ prerelease: false
198
+ version_requirements: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ - !ruby/object:Gem::Dependency
204
+ name: rspec-rails
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ type: :development
211
+ prerelease: false
212
+ version_requirements: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ - !ruby/object:Gem::Dependency
218
+ name: rb-fsevent
219
+ requirement: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ type: :development
225
+ prerelease: false
226
+ version_requirements: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ - !ruby/object:Gem::Dependency
232
+ name: guard-rspec
233
+ requirement: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ type: :development
239
+ prerelease: false
240
+ version_requirements: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ description: A Rails Engine with simple, form-based authentication, session, and blacklist
246
+ route support.
247
+ email:
248
+ - brooke@redalchemist.com
249
+ executables: []
250
+ extensions: []
251
+ extra_rdoc_files:
252
+ - README.md
253
+ - LICENSE.md
254
+ files:
255
+ - LICENSE.md
256
+ - README.md
257
+ - app/assets/javascripts/auther/application.js
258
+ - app/assets/stylesheets/auther/application.css.scss
259
+ - app/controllers/auther/application_controller.rb
260
+ - app/controllers/auther/session_controller.rb
261
+ - app/helpers/auther/application_helper.rb
262
+ - app/views/auther/session/new.html.slim
263
+ - app/views/layouts/auther/auth.html.slim
264
+ - bin/rails
265
+ - config/routes.rb
266
+ - lib/auther.rb
267
+ - lib/auther/engine.rb
268
+ - lib/auther/gatekeeper.rb
269
+ - lib/auther/keymaster.rb
270
+ - lib/auther/version.rb
271
+ homepage: http://www.redalchemist.com
272
+ licenses:
273
+ - MIT
274
+ metadata: {}
275
+ post_install_message:
276
+ rdoc_options: []
277
+ require_paths:
278
+ - lib
279
+ required_ruby_version: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: '2.0'
284
+ required_rubygems_version: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: '0'
289
+ requirements: []
290
+ rubyforge_project:
291
+ rubygems_version: 2.2.0
292
+ signing_key:
293
+ specification_version: 4
294
+ summary: A Rails Engine with simple, form-based authentication support.
295
+ test_files: []
296
+ has_rdoc:
metadata.gz.sig ADDED
Binary file