mumukit-auth 7.13.0 → 7.14.0

Sign up to get free protection for your applications and to get access to all the features.
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