adeia 0.11.0 → 0.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4a1ebe192b9a6f72013ede46d4c0c4e0c5216948
4
- data.tar.gz: 10f965b7685d483496fc0a774e888572dcc2532e
3
+ metadata.gz: 6d27952eb40a8808b7ba846ff9dd9a3e6360006d
4
+ data.tar.gz: 01adea387c3d8b18791f877b569158e7eb87f0c3
5
5
  SHA512:
6
- metadata.gz: c9f8cef57a7f79abc2c08ca7b113a8da305aecfdabdf064e817dc1b9ef3f1f22e56d85ddabbd6f8e3437ef8da55bfda62f42a69394c86f6ca3d1cf3ee62a484e
7
- data.tar.gz: 00af089afb586476ea97bf640fe32901da4a3a2ae9cdb4f7b911e052007e884e8aa737bfb5fab5d2fb18317f9401c85d0899a24b8a709cdba96ca0b31f8cdaf0
6
+ metadata.gz: 4abec95b33ba33e13336f0b7672657b3ee0bc252de077abb646be3721ceaf672d85a58d5ae89c15b91a1691e5307447c43045d16dc820cd386c5991536a9b9b1
7
+ data.tar.gz: 190837048b0ea27bcf8ffb9c2c957e654d4e6b55f978b7eb4b07a1e5332378115c336aaaae9a0dcaacb4ffa33ad38704bb4ec66514e0e5744193285fc854ff7b
data/README.md CHANGED
@@ -26,6 +26,12 @@ Then include the engine's routes in your `routes.rb`. The URL on which you mount
26
26
  mount Adeia::Engine => "/adeia"
27
27
  ```
28
28
 
29
+ ### Tasks
30
+
31
+ The first task to run is `rake adeia:permissions elements="first_element, second_element"`. It creates the given elements in the database and a superadmin group which has all the permissions.
32
+ Then you can run `adeia:superuser user_id=your_id`, which add the given user in the superadmin group.
33
+ If you need to add new groups, run `adeia:groups groups="first_group, second_group"`.
34
+
29
35
  ## Requirements
30
36
 
31
37
  Requires a User model with:
@@ -141,6 +147,13 @@ class EventsController < ApplicationController
141
147
  end
142
148
  ```
143
149
 
144
- ### Other methods
150
+ ### Controller methods
145
151
 
146
152
  When an authorization exception is raised by the engine, it automatically store the current user's location in a cookie. The called method is `store_location` and is available in your controllers. Then you can use the method `redirect_back_or(default, message = nil)` which either redirects to the stored location if any or redirects the default provided path, with an optional message.
153
+
154
+ ## Model methods
155
+
156
+ TODO
157
+
158
+ * User model
159
+ * Permission model
@@ -38,7 +38,7 @@ module Adeia
38
38
 
39
39
  def load_resource
40
40
  begin
41
- @resource = resource_class.find(@controller.params.fetch(:id))
41
+ @resource ||= resource_class.find(@controller.params.fetch(:id))
42
42
  @controller.instance_variable_set("@#{resource_name}", @resource)
43
43
  rescue KeyError
44
44
  raise MissingParams.new(:id)
@@ -81,9 +81,9 @@ module Adeia
81
81
 
82
82
  def resource_class
83
83
  begin
84
- @controller.controller_path.classify.constantize
84
+ @controller_name.classify.constantize
85
85
  rescue NameError
86
- @controller.controller_name.classify.constantize
86
+ @controller_name.classify.demodulize.constantize
87
87
  end
88
88
  end
89
89
 
@@ -118,4 +118,4 @@ module Adeia
118
118
 
119
119
  end
120
120
 
121
- end
121
+ end
@@ -16,6 +16,19 @@ module Adeia
16
16
  has_many :permissions, class_name: "Adeia::Permission"
17
17
  end
18
18
 
19
+ def add_to_group(name)
20
+ group = Group.find_by_name
21
+ Adeia::GroupUser.create(group: group, user: self)
22
+ end
23
+
24
+ def permissions
25
+ @permissions ||= Adeia::Permission.where(owner: groups << self)
26
+ end
27
+
28
+ def groups
29
+ @groups ||= Adeia::Group.joins(:group_users).where(adeia_group_users: { user_id: self.id })
30
+ end
31
+
19
32
  end
20
33
  end
21
- end
34
+ end
data/lib/adeia/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Adeia
2
- VERSION = "0.11.0"
2
+ VERSION = "0.11.2"
3
3
  end
data/lib/tasks/init.rake CHANGED
@@ -23,4 +23,12 @@ namespace :adeia do
23
23
  end
24
24
  end
25
25
 
26
+ desc "Create groups"
27
+ task groups: :environment do
28
+ groups = ENV["groups"].split(",").map { |e| e.strip } if ENV["groups"].present?
29
+ if groups.present?
30
+ groups.each { |group| Adeia::Group.create!(name: group) }
31
+ end
32
+ end
33
+
26
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adeia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - khcr