mumukit-auth 7.13.0 → 7.14.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a77054a911454b7372cadecd8bda02e894ff80bd24ee5d19eb4b9086fb17dcc
4
- data.tar.gz: 69b57019319e45c0a2c49425fea3964d9e270c5452c61c3f20d374ee41077464
3
+ metadata.gz: 600ea97ec7444992f512908fd046eace4f4fbe4cdf13438f0b5035e39f4de529
4
+ data.tar.gz: b0d7c15848351ab61c58e6a236ab998f5889f60921840e4c7381f7a521b3cbfe
5
5
  SHA512:
6
- metadata.gz: 36a9d0459ed2513e94851f01312aab4ed88e8abcf17707c2c9c7bb3a86a9be406e8b5d43ac6d7194d568118622bb2801125aba27996c4eff7b12dd6824c538f6
7
- data.tar.gz: e16a35c4478a206125c1d489b24ea79c84e0ba5d0082057363deb0d653c44d09e1bf7cc6e86f31268fad9b76d66c3d240eaf1b6f5643121dd7930f4765963289
6
+ metadata.gz: 04de29634c9fc0910e4f57af3d9be417e83f4b0ac8c23db94a0b21dc2edd6fe162f39b85dee9ee39f9030df59314caf90d5f041db1a43311c1decd0bc37e6b8d
7
+ data.tar.gz: 69228424458087b021989753f7420f1479b90626fb02262d626cbe18f2f6b4cbdcb053a58d324cbd2d28cdd0994a8fa34ae2b2dee93495cd0d2ee8c5fdb552eb
@@ -5,7 +5,7 @@ class Mumukit::Auth::Permissions
5
5
  attr_accessor :scopes
6
6
 
7
7
  def initialize(scopes={})
8
- @scopes = {}.with_indifferent_access
8
+ clear!
9
9
  add_scopes! scopes
10
10
  end
11
11
 
@@ -132,6 +132,10 @@ class Mumukit::Auth::Permissions
132
132
  raise Mumukit::Auth::UnauthorizedAccessError unless assign_to?(self.class.reparse(other), previous)
133
133
  end
134
134
 
135
+ def clear!
136
+ @scopes = {}.with_indifferent_access
137
+ end
138
+
135
139
  def as_set
136
140
  Set.new scopes.flat_map { |role, scope| scope.grants.map {|grant| [role, grant]} }
137
141
  end
@@ -73,15 +73,18 @@ module Mumukit::Auth
73
73
  parent :editor
74
74
  end
75
75
  class Editor < Role
76
- parent :admin
76
+ parent :manager
77
77
  end
78
78
  class Janitor < Role
79
- parent :admin
79
+ parent :manager
80
80
  end
81
81
  class Moderator < Role
82
- parent :forum_supervisor
82
+ parent :supervisor
83
+ end
84
+ class Manager < Role
85
+ parent :supervisor
83
86
  end
84
- class ForumSupervisor < Role
87
+ class Supervisor < Role
85
88
  parent :admin
86
89
  end
87
90
  class Admin < Role
@@ -1,6 +1,13 @@
1
1
  module Mumukit::Auth
2
2
  module Roles
3
- ROLES = [:ex_student, :student, :teacher, :headmaster, :writer, :editor, :janitor, :moderator, :forum_supervisor, :admin, :owner]
3
+ FINE_GRAINED_ROLES = [
4
+ :ex_student, :student, :teacher, :headmaster, :writer, :editor, :janitor,
5
+ :moderator, :manager
6
+ ]
7
+ COARSE_GRAINED_ROLES = [:supervisor, :admin, :owner]
8
+
9
+ ROLES = COARSE_GRAINED_ROLES + FINE_GRAINED_ROLES
10
+
4
11
 
5
12
  ROLES.each do |role|
6
13
  define_method "#{role}?" do |scope = Mumukit::Auth::Slug.any|
@@ -9,4 +16,3 @@ module Mumukit::Auth
9
16
  end
10
17
  end
11
18
  end
12
-
@@ -43,22 +43,12 @@ module Mumukit::Auth
43
43
  'Bearer ' + encode
44
44
  end
45
45
 
46
- def self.encode(uid, metadata, client = Mumukit::Auth::Client.new)
47
- warn "Deprecated: please use build and then encode"
48
- build(uid, client, metadata: metadata).encode
49
- end
50
-
51
46
  def self.decode(encoded, client = Mumukit::Auth::Client.new)
52
47
  new client.decode(encoded), client
53
48
  rescue JWT::DecodeError => e
54
49
  raise Mumukit::Auth::InvalidTokenError.new(e)
55
50
  end
56
51
 
57
- def self.encode_header(uid, metadata)
58
- warn "Deprecated: please use build and then encode_header"
59
- 'Bearer ' + build(uid, metadata: metadata).encode_header
60
- end
61
-
62
52
  def self.decode_header(header, client = Mumukit::Auth::Client.new)
63
53
  decode extract_from_header(header), client
64
54
  end
@@ -1,5 +1,5 @@
1
1
  module Mumukit
2
2
  module Auth
3
- VERSION = '7.13.0'
3
+ VERSION = '7.14.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumukit-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.13.0
4
+ version: 7.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franco Leonardo Bulgarelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-08 00:00:00.000000000 Z
11
+ date: 2022-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler