revelry_auth 0.0.0 → 0.0.1
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 +4 -4
- data/README.md +26 -1
- data/Rakefile +21 -0
- data/app/assets/javascripts/revelry_auth/application.js +13 -0
- data/app/assets/stylesheets/revelry_auth/application.css +15 -0
- data/app/controllers/revelry_auth/application_controller.rb +6 -0
- data/app/helpers/revelry_auth/application_helper.rb +6 -0
- data/app/views/layouts/revelry_auth/application.html.erb +14 -0
- data/config/routes.rb +4 -0
- data/lib/generators/revelry/auth/install_generator.rb +53 -0
- data/lib/generators/revelry/auth/templates/admins_only_policy.rb +26 -0
- data/lib/revelry.rb +6 -0
- data/lib/revelry/auth.rb +2 -0
- data/lib/revelry/auth/concern.rb +9 -0
- data/lib/revelry/auth/engine.rb +13 -0
- data/lib/revelry/auth/version.rb +5 -0
- data/lib/tasks/revelry_auth_tasks.rake +4 -0
- metadata +68 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efd3137938135a68c2d60c11c7006e2b501297d6
|
4
|
+
data.tar.gz: 011cad03b330d3d82b65385d6f751cf17b4358e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f08f07fba85fc011297faa75f5e638489de8682563e7503674b0fabca1320b4fea70582797ecf0faaf743b7b4c683436c993b588e70fa3951e15d5fe56c4538c
|
7
|
+
data.tar.gz: 0f03095357c69155bca4030fcd00994db372af4f5d718638c216bfd4f0055f19b1b9adcbbbab2bd6b2871a738e0b6f1075c7131e524a8a744243bdd649f67208
|
data/README.md
CHANGED
@@ -1 +1,26 @@
|
|
1
|
-
#
|
1
|
+
# RevelryAuth
|
2
|
+
|
3
|
+
Revelry Auth is an authentication and authorization engine that is fast and easy
|
4
|
+
to install.
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
For a new app, run:
|
9
|
+
|
10
|
+
```shell
|
11
|
+
rails new APPNAME -m https://raw.githubusercontent.com/revelrylabs/revelry_auth/master/template.rb
|
12
|
+
```
|
13
|
+
|
14
|
+
For an existing app, add the gem to your Gemfile and then do
|
15
|
+
|
16
|
+
```shell
|
17
|
+
bundle install
|
18
|
+
rails g revelry:auth:install
|
19
|
+
```
|
20
|
+
|
21
|
+
## Extension & Customization
|
22
|
+
|
23
|
+
Revelry Auth is built on [Devise](https://github.com/plataformatec/devise),
|
24
|
+
[Rolify](https://github.com/RolifyCommunity/rolify) and
|
25
|
+
[Pundit](https://github.com/elabs/pundit), so you have access to all the
|
26
|
+
customization options those gems provide.
|
data/Rakefile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
8
|
+
load 'rails/tasks/engine.rake'
|
9
|
+
|
10
|
+
|
11
|
+
load 'rails/tasks/statistics.rake'
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
Bundler::GemHelper.install_tasks
|
16
|
+
|
17
|
+
require 'rspec/core/rake_task'
|
18
|
+
|
19
|
+
RSpec::Core::RakeTask.new(:spec)
|
20
|
+
|
21
|
+
task :default => :spec
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require_tree .
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any styles
|
10
|
+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
11
|
+
* file per style scope.
|
12
|
+
*
|
13
|
+
*= require_tree .
|
14
|
+
*= require_self
|
15
|
+
*/
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>RevelryAuth</title>
|
5
|
+
<%= stylesheet_link_tag "revelry_auth/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "revelry_auth/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rails/generators/base'
|
2
|
+
|
3
|
+
module Revelry
|
4
|
+
module Generators
|
5
|
+
module Auth
|
6
|
+
class InstallGenerator < Rails::Generators::Base
|
7
|
+
source_root File.expand_path("../templates", __FILE__)
|
8
|
+
|
9
|
+
def add_gem
|
10
|
+
gem 'devise'
|
11
|
+
gem 'rolify'
|
12
|
+
gem 'pundit'
|
13
|
+
gem 'devise_invitable'
|
14
|
+
run 'bundle install'
|
15
|
+
end
|
16
|
+
|
17
|
+
def install_devise
|
18
|
+
generate 'devise:install'
|
19
|
+
end
|
20
|
+
|
21
|
+
def install_devise_to_user
|
22
|
+
generate 'devise user'
|
23
|
+
insert_into_file Rails.root.join('app', 'models', 'user.rb'), after: 'validatable' do
|
24
|
+
', :invitable'
|
25
|
+
end
|
26
|
+
rake 'db:migrate'
|
27
|
+
end
|
28
|
+
|
29
|
+
def install_roles
|
30
|
+
generate 'rolify Role User'
|
31
|
+
rake 'db:migrate'
|
32
|
+
end
|
33
|
+
|
34
|
+
def add_pundit_to_app_controller
|
35
|
+
insert_into_file app_controller_path, after: "ActionController::Base\n" do
|
36
|
+
"include Pundit\n"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def install_policies
|
41
|
+
generate 'pundit:install'
|
42
|
+
template 'admins_only_policy.rb', 'app/policies/admins_only_policy.rb'
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def app_controller_path
|
48
|
+
Rails.root.join('app', 'controllers', 'application_controller.rb')
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class AdminsOnlyPolicy < ApplicationPolicy
|
2
|
+
def initialize(user, model)
|
3
|
+
@user = user
|
4
|
+
@model = model
|
5
|
+
end
|
6
|
+
|
7
|
+
def index?
|
8
|
+
@user.has_role? :admin
|
9
|
+
end
|
10
|
+
|
11
|
+
def create?
|
12
|
+
@user.has_role? :admin
|
13
|
+
end
|
14
|
+
|
15
|
+
def update?
|
16
|
+
@user.has_role? :admin
|
17
|
+
end
|
18
|
+
|
19
|
+
def edit?
|
20
|
+
@user.has_role? :admin
|
21
|
+
end
|
22
|
+
|
23
|
+
def destroy?
|
24
|
+
@user.has_role? :admin
|
25
|
+
end
|
26
|
+
end
|
data/lib/revelry.rb
ADDED
data/lib/revelry/auth.rb
ADDED
metadata
CHANGED
@@ -1,109 +1,155 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: revelry_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Adam Clarke
|
8
|
+
- Robert Prehn
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
+
date: 2015-05-12 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rails
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - ~>
|
18
|
+
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '4.0'
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
|
-
- - ~>
|
25
|
+
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
27
|
version: '4.0'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: devise
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
|
-
- - ~>
|
32
|
+
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: 3.4.1
|
34
35
|
type: :runtime
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
|
-
- - ~>
|
39
|
+
- - "~>"
|
39
40
|
- !ruby/object:Gem::Version
|
40
41
|
version: 3.4.1
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
43
|
name: rolify
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
|
-
- - ~>
|
46
|
+
- - "~>"
|
46
47
|
- !ruby/object:Gem::Version
|
47
48
|
version: 3.5.2
|
48
49
|
type: :runtime
|
49
50
|
prerelease: false
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
52
|
-
- - ~>
|
53
|
+
- - "~>"
|
53
54
|
- !ruby/object:Gem::Version
|
54
55
|
version: 3.5.2
|
55
56
|
- !ruby/object:Gem::Dependency
|
56
57
|
name: pundit
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
|
-
- - ~>
|
60
|
+
- - "~>"
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: 0.3.0
|
62
63
|
type: :runtime
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
|
-
- - ~>
|
67
|
+
- - "~>"
|
67
68
|
- !ruby/object:Gem::Version
|
68
69
|
version: 0.3.0
|
69
70
|
- !ruby/object:Gem::Dependency
|
70
71
|
name: devise_invitable
|
71
72
|
requirement: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
|
-
- - ~>
|
74
|
+
- - "~>"
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: 1.3.4
|
76
77
|
type: :runtime
|
77
78
|
prerelease: false
|
78
79
|
version_requirements: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
|
-
- - ~>
|
81
|
+
- - "~>"
|
81
82
|
- !ruby/object:Gem::Version
|
82
83
|
version: 1.3.4
|
83
84
|
- !ruby/object:Gem::Dependency
|
84
85
|
name: sqlite3
|
85
86
|
requirement: !ruby/object:Gem::Requirement
|
86
87
|
requirements:
|
87
|
-
- -
|
88
|
+
- - ">="
|
88
89
|
- !ruby/object:Gem::Version
|
89
90
|
version: '0'
|
90
91
|
type: :development
|
91
92
|
prerelease: false
|
92
93
|
version_requirements: !ruby/object:Gem::Requirement
|
93
94
|
requirements:
|
94
|
-
- -
|
95
|
+
- - ">="
|
95
96
|
- !ruby/object:Gem::Version
|
96
97
|
version: '0'
|
97
|
-
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rspec
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rspec-rails
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: Authentication and authorization for Revelry toolkit apps using Devise,
|
127
|
+
Rolify and Pundit.
|
98
128
|
email:
|
99
|
-
-
|
129
|
+
- adam@revelry.co
|
130
|
+
- robert@revelry.co
|
100
131
|
executables: []
|
101
132
|
extensions: []
|
102
133
|
extra_rdoc_files: []
|
103
134
|
files:
|
104
135
|
- LICENSE
|
105
136
|
- README.md
|
106
|
-
|
137
|
+
- Rakefile
|
138
|
+
- app/assets/javascripts/revelry_auth/application.js
|
139
|
+
- app/assets/stylesheets/revelry_auth/application.css
|
140
|
+
- app/controllers/revelry_auth/application_controller.rb
|
141
|
+
- app/helpers/revelry_auth/application_helper.rb
|
142
|
+
- app/views/layouts/revelry_auth/application.html.erb
|
143
|
+
- config/routes.rb
|
144
|
+
- lib/generators/revelry/auth/install_generator.rb
|
145
|
+
- lib/generators/revelry/auth/templates/admins_only_policy.rb
|
146
|
+
- lib/revelry.rb
|
147
|
+
- lib/revelry/auth.rb
|
148
|
+
- lib/revelry/auth/concern.rb
|
149
|
+
- lib/revelry/auth/engine.rb
|
150
|
+
- lib/revelry/auth/version.rb
|
151
|
+
- lib/tasks/revelry_auth_tasks.rake
|
152
|
+
homepage: http://toolkit.revelry.co
|
107
153
|
licenses:
|
108
154
|
- BSD
|
109
155
|
metadata: {}
|
@@ -113,18 +159,18 @@ require_paths:
|
|
113
159
|
- lib
|
114
160
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
161
|
requirements:
|
116
|
-
- -
|
162
|
+
- - ">="
|
117
163
|
- !ruby/object:Gem::Version
|
118
164
|
version: '0'
|
119
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
166
|
requirements:
|
121
|
-
- -
|
167
|
+
- - ">="
|
122
168
|
- !ruby/object:Gem::Version
|
123
169
|
version: '0'
|
124
170
|
requirements: []
|
125
171
|
rubyforge_project:
|
126
|
-
rubygems_version: 2.
|
172
|
+
rubygems_version: 2.2.2
|
127
173
|
signing_key:
|
128
174
|
specification_version: 4
|
129
|
-
summary: Revelry
|
175
|
+
summary: Authentication and authorization for Revelry toolkit apps.
|
130
176
|
test_files: []
|