granity 0.1.0 → 0.1.2
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/MIT-LICENSE +1 -1
- data/README.md +207 -11
- data/app/models/granity/relation_tuple.rb +12 -0
- data/db/migrate/20250317000000_create_granity_relation_tuples.rb +20 -0
- data/lib/generators/granity/install/install_generator.rb +16 -0
- data/lib/granity/authorization_engine.rb +155 -0
- data/lib/granity/configuration.rb +18 -0
- data/lib/granity/dependency_analyzer.rb +127 -0
- data/lib/granity/engine.rb +8 -0
- data/lib/granity/in_memory_cache.rb +96 -0
- data/lib/granity/permission.rb +37 -0
- data/lib/granity/permission_evaluator.rb +290 -0
- data/lib/granity/relation.rb +13 -0
- data/lib/granity/resource_type.rb +34 -0
- data/lib/granity/rules.rb +89 -0
- data/lib/granity/schema.rb +46 -0
- data/lib/granity/version.rb +1 -1
- data/lib/granity.rb +72 -2
- metadata +41 -43
- data/app/assets/stylesheets/granity/application.css +0 -15
- data/app/controllers/granity/application_controller.rb +0 -4
- data/app/helpers/granity/application_helper.rb +0 -4
- data/app/jobs/granity/application_job.rb +0 -4
- data/app/mailers/granity/application_mailer.rb +0 -6
- data/app/models/granity/application_record.rb +0 -5
- data/app/views/layouts/granity/application.html.erb +0 -17
metadata
CHANGED
@@ -1,121 +1,114 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: granity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yatish Mehta
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-03-
|
10
|
+
date: 2025-03-18 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: rails
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- - "~>"
|
17
|
-
- !ruby/object:Gem::Version
|
18
|
-
version: '8.0'
|
19
16
|
- - ">="
|
20
17
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
18
|
+
version: '7.1'
|
22
19
|
type: :runtime
|
23
20
|
prerelease: false
|
24
21
|
version_requirements: !ruby/object:Gem::Requirement
|
25
22
|
requirements:
|
26
|
-
- - "~>"
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
version: '8.0'
|
29
23
|
- - ">="
|
30
24
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
25
|
+
version: '7.1'
|
32
26
|
- !ruby/object:Gem::Dependency
|
33
|
-
name:
|
27
|
+
name: activerecord
|
34
28
|
requirement: !ruby/object:Gem::Requirement
|
35
29
|
requirements:
|
36
|
-
- - "
|
30
|
+
- - ">="
|
37
31
|
- !ruby/object:Gem::Version
|
38
|
-
version: '
|
39
|
-
type: :
|
32
|
+
version: '7.1'
|
33
|
+
type: :runtime
|
40
34
|
prerelease: false
|
41
35
|
version_requirements: !ruby/object:Gem::Requirement
|
42
36
|
requirements:
|
43
|
-
- - "
|
37
|
+
- - ">="
|
44
38
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
39
|
+
version: '7.1'
|
46
40
|
- !ruby/object:Gem::Dependency
|
47
41
|
name: sqlite3
|
48
42
|
requirement: !ruby/object:Gem::Requirement
|
49
43
|
requirements:
|
50
44
|
- - "~>"
|
51
45
|
- !ruby/object:Gem::Version
|
52
|
-
version: '1.
|
46
|
+
version: '1.4'
|
53
47
|
type: :development
|
54
48
|
prerelease: false
|
55
49
|
version_requirements: !ruby/object:Gem::Requirement
|
56
50
|
requirements:
|
57
51
|
- - "~>"
|
58
52
|
- !ruby/object:Gem::Version
|
59
|
-
version: '1.
|
53
|
+
version: '1.4'
|
60
54
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
55
|
+
name: rspec-rails
|
62
56
|
requirement: !ruby/object:Gem::Requirement
|
63
57
|
requirements:
|
64
58
|
- - "~>"
|
65
59
|
- !ruby/object:Gem::Version
|
66
|
-
version: '0
|
60
|
+
version: '6.0'
|
67
61
|
type: :development
|
68
62
|
prerelease: false
|
69
63
|
version_requirements: !ruby/object:Gem::Requirement
|
70
64
|
requirements:
|
71
65
|
- - "~>"
|
72
66
|
- !ruby/object:Gem::Version
|
73
|
-
version: '0
|
67
|
+
version: '6.0'
|
74
68
|
- !ruby/object:Gem::Dependency
|
75
|
-
name:
|
69
|
+
name: factory_bot_rails
|
76
70
|
requirement: !ruby/object:Gem::Requirement
|
77
71
|
requirements:
|
78
72
|
- - "~>"
|
79
73
|
- !ruby/object:Gem::Version
|
80
|
-
version: '
|
74
|
+
version: '6.2'
|
81
75
|
type: :development
|
82
76
|
prerelease: false
|
83
77
|
version_requirements: !ruby/object:Gem::Requirement
|
84
78
|
requirements:
|
85
79
|
- - "~>"
|
86
80
|
- !ruby/object:Gem::Version
|
87
|
-
version: '
|
81
|
+
version: '6.2'
|
88
82
|
- !ruby/object:Gem::Dependency
|
89
|
-
name:
|
83
|
+
name: database_cleaner-active_record
|
90
84
|
requirement: !ruby/object:Gem::Requirement
|
91
85
|
requirements:
|
92
86
|
- - "~>"
|
93
87
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
88
|
+
version: '2.0'
|
95
89
|
type: :development
|
96
90
|
prerelease: false
|
97
91
|
version_requirements: !ruby/object:Gem::Requirement
|
98
92
|
requirements:
|
99
93
|
- - "~>"
|
100
94
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
95
|
+
version: '2.0'
|
102
96
|
- !ruby/object:Gem::Dependency
|
103
|
-
name:
|
97
|
+
name: standard
|
104
98
|
requirement: !ruby/object:Gem::Requirement
|
105
99
|
requirements:
|
106
100
|
- - "~>"
|
107
101
|
- !ruby/object:Gem::Version
|
108
|
-
version: '
|
102
|
+
version: '1.3'
|
109
103
|
type: :development
|
110
104
|
prerelease: false
|
111
105
|
version_requirements: !ruby/object:Gem::Requirement
|
112
106
|
requirements:
|
113
107
|
- - "~>"
|
114
108
|
- !ruby/object:Gem::Version
|
115
|
-
version: '
|
116
|
-
description: Granity is a
|
117
|
-
for Ruby on Rails applications
|
118
|
-
control policies.
|
109
|
+
version: '1.3'
|
110
|
+
description: Granity is a flexible, caching-friendly authorization engine that provides
|
111
|
+
fine-grained access control for Ruby on Rails applications
|
119
112
|
email:
|
120
113
|
- yatish27@users.noreply.github.com
|
121
114
|
executables: []
|
@@ -125,16 +118,22 @@ files:
|
|
125
118
|
- MIT-LICENSE
|
126
119
|
- README.md
|
127
120
|
- Rakefile
|
128
|
-
- app/
|
129
|
-
- app/controllers/granity/application_controller.rb
|
130
|
-
- app/helpers/granity/application_helper.rb
|
131
|
-
- app/jobs/granity/application_job.rb
|
132
|
-
- app/mailers/granity/application_mailer.rb
|
133
|
-
- app/models/granity/application_record.rb
|
134
|
-
- app/views/layouts/granity/application.html.erb
|
121
|
+
- app/models/granity/relation_tuple.rb
|
135
122
|
- config/routes.rb
|
123
|
+
- db/migrate/20250317000000_create_granity_relation_tuples.rb
|
124
|
+
- lib/generators/granity/install/install_generator.rb
|
136
125
|
- lib/granity.rb
|
126
|
+
- lib/granity/authorization_engine.rb
|
127
|
+
- lib/granity/configuration.rb
|
128
|
+
- lib/granity/dependency_analyzer.rb
|
137
129
|
- lib/granity/engine.rb
|
130
|
+
- lib/granity/in_memory_cache.rb
|
131
|
+
- lib/granity/permission.rb
|
132
|
+
- lib/granity/permission_evaluator.rb
|
133
|
+
- lib/granity/relation.rb
|
134
|
+
- lib/granity/resource_type.rb
|
135
|
+
- lib/granity/rules.rb
|
136
|
+
- lib/granity/schema.rb
|
138
137
|
- lib/granity/version.rb
|
139
138
|
- lib/tasks/granity_tasks.rake
|
140
139
|
homepage: https://github.com/yatish27/granity
|
@@ -142,7 +141,6 @@ licenses:
|
|
142
141
|
- MIT
|
143
142
|
metadata:
|
144
143
|
homepage_uri: https://github.com/yatish27/granity
|
145
|
-
source_code_uri: https://github.com/yatish27/granity
|
146
144
|
documentation_uri: https://github.com/yatish27/granity/blob/main/README.md
|
147
145
|
changelog_uri: https://github.com/yatish27/granity/blob/main/CHANGELOG.md
|
148
146
|
rdoc_options: []
|
@@ -152,7 +150,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
150
|
requirements:
|
153
151
|
- - ">="
|
154
152
|
- !ruby/object:Gem::Version
|
155
|
-
version: 3.
|
153
|
+
version: '3.1'
|
156
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
155
|
requirements:
|
158
156
|
- - ">="
|
@@ -161,5 +159,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
159
|
requirements: []
|
162
160
|
rubygems_version: 3.6.5
|
163
161
|
specification_version: 4
|
164
|
-
summary: Fine-grained authorization for Ruby on Rails
|
162
|
+
summary: Fine-grained authorization for Ruby on Rails
|
165
163
|
test_files: []
|
@@ -1,15 +0,0 @@
|
|
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 other CSS/SCSS
|
10
|
-
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
-
* It is generally better to create a new file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree .
|
14
|
-
*= require_self
|
15
|
-
*/
|
@@ -1,17 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Granity</title>
|
5
|
-
<%= csrf_meta_tags %>
|
6
|
-
<%= csp_meta_tag %>
|
7
|
-
|
8
|
-
<%= yield :head %>
|
9
|
-
|
10
|
-
<%= stylesheet_link_tag "granity/application", media: "all" %>
|
11
|
-
</head>
|
12
|
-
<body>
|
13
|
-
|
14
|
-
<%= yield %>
|
15
|
-
|
16
|
-
</body>
|
17
|
-
</html>
|