mumuki-domain 9.15.0 → 9.16.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 +4 -4
- data/app/models/exam_registration/authorization_criterion.rb +12 -0
- data/app/models/exam_registration.rb +1 -1
- data/app/models/organization.rb +1 -1
- data/app/models/organization_access_mode/base.rb +2 -1
- data/app/models/user.rb +1 -4
- data/lib/mumuki/domain/factories/exam_authorization_factory.rb +5 -0
- data/lib/mumuki/domain/factories.rb +1 -0
- data/lib/mumuki/domain/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d6ca5bebdea5c189193c066336fc00f63aadee23e7a3d898fc90f9801eb118da
|
|
4
|
+
data.tar.gz: 4f6320243a816ca7be058072d587ee53765afb1eb5e5d25df5d5c774c4e79fc6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2cc91011652076858bef72e4e6bded616ab09ae49bc04f88161898546fe4ed5855ec7164d1f8b6999d270caefddb6f7965c16f641b417e6ddffa33716e4fe7a1
|
|
7
|
+
data.tar.gz: ce626e9a3577946dfbe671924bc1e444292cf5947bce1811739d8ad94b02f3c09c0f3a8fba825aa77967f123ede918ca1cfa19edd625c2709f41ddb1a6706bb5
|
|
@@ -38,6 +38,10 @@ class ExamRegistration::AuthorizationCriterion
|
|
|
38
38
|
def meets_authorization_criteria?(authorization_request)
|
|
39
39
|
meets_criterion? authorization_request.user, authorization_request.organization
|
|
40
40
|
end
|
|
41
|
+
|
|
42
|
+
def authorization_criteria_matcher
|
|
43
|
+
criterion_matcher
|
|
44
|
+
end
|
|
41
45
|
end
|
|
42
46
|
|
|
43
47
|
class ExamRegistration::AuthorizationCriterion::None < ExamRegistration::AuthorizationCriterion
|
|
@@ -52,6 +56,10 @@ class ExamRegistration::AuthorizationCriterion::None < ExamRegistration::Authori
|
|
|
52
56
|
def meets_criterion?(_user, _organization)
|
|
53
57
|
true
|
|
54
58
|
end
|
|
59
|
+
|
|
60
|
+
def criterion_matcher
|
|
61
|
+
{}
|
|
62
|
+
end
|
|
55
63
|
end
|
|
56
64
|
|
|
57
65
|
class ExamRegistration::AuthorizationCriterion::PassedExercises < ExamRegistration::AuthorizationCriterion
|
|
@@ -62,4 +70,8 @@ class ExamRegistration::AuthorizationCriterion::PassedExercises < ExamRegistrati
|
|
|
62
70
|
def meets_criterion?(user, organization)
|
|
63
71
|
user.passed_submissions_count_in(organization) >= value
|
|
64
72
|
end
|
|
73
|
+
|
|
74
|
+
def criterion_matcher
|
|
75
|
+
{ 'stats.passed': { '$gte': value.to_f } }
|
|
76
|
+
end
|
|
65
77
|
end
|
|
@@ -12,7 +12,7 @@ class ExamRegistration < ApplicationRecord
|
|
|
12
12
|
|
|
13
13
|
before_save :ensure_valid_authorization_criterion!
|
|
14
14
|
|
|
15
|
-
delegate :meets_authorization_criteria?, :process_request!, to: :authorization_criterion
|
|
15
|
+
delegate :meets_authorization_criteria?, :process_request!, :authorization_criteria_matcher, to: :authorization_criterion
|
|
16
16
|
|
|
17
17
|
alias_attribute :name, :description
|
|
18
18
|
|
data/app/models/organization.rb
CHANGED
|
@@ -23,7 +23,8 @@ class OrganizationAccessMode::Base
|
|
|
23
23
|
|
|
24
24
|
def discuss_here?
|
|
25
25
|
organization.forum_enabled? && user.discusser_of?(organization) &&
|
|
26
|
-
user.trusted_as_discusser_in?(organization) && !user.banned_from_forum?
|
|
26
|
+
user.trusted_as_discusser_in?(organization) && !user.banned_from_forum? &&
|
|
27
|
+
!user.currently_in_exam?
|
|
27
28
|
end
|
|
28
29
|
|
|
29
30
|
def show_discussion_element?
|
data/app/models/user.rb
CHANGED
|
@@ -158,6 +158,7 @@ class User < ApplicationRecord
|
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
def detach!(role, course)
|
|
161
|
+
make_ex_student_of! course.slug if student_of?(course.slug) && solved_any_exercises?(course.organization)
|
|
161
162
|
remove_permission! role, course.slug
|
|
162
163
|
save_and_notify!
|
|
163
164
|
end
|
|
@@ -202,10 +203,6 @@ class User < ApplicationRecord
|
|
|
202
203
|
sequence[0..count + lookahead - 1]
|
|
203
204
|
end
|
|
204
205
|
|
|
205
|
-
# Tells if the given user can discuss in an organization
|
|
206
|
-
#
|
|
207
|
-
# This is true only when this organization has the forum enabled and the user
|
|
208
|
-
# has the discusser pseudo-permission and the discusser is trusted
|
|
209
206
|
def can_discuss_in?(organization)
|
|
210
207
|
organization.access_mode(self).discuss_here?
|
|
211
208
|
end
|
|
@@ -9,6 +9,7 @@ require_relative './factories/complement_factory'
|
|
|
9
9
|
require_relative './factories/course_factory'
|
|
10
10
|
require_relative './factories/discussion_factory'
|
|
11
11
|
require_relative './factories/exam_factory'
|
|
12
|
+
require_relative './factories/exam_authorization_factory'
|
|
12
13
|
require_relative './factories/exam_authorization_request_factory'
|
|
13
14
|
require_relative './factories/exam_registration_factory'
|
|
14
15
|
require_relative './factories/exercise_factory'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mumuki-domain
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.16.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: 2021-09-
|
|
11
|
+
date: 2021-09-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -721,6 +721,7 @@ files:
|
|
|
721
721
|
- lib/mumuki/domain/factories/complement_factory.rb
|
|
722
722
|
- lib/mumuki/domain/factories/course_factory.rb
|
|
723
723
|
- lib/mumuki/domain/factories/discussion_factory.rb
|
|
724
|
+
- lib/mumuki/domain/factories/exam_authorization_factory.rb
|
|
724
725
|
- lib/mumuki/domain/factories/exam_authorization_request_factory.rb
|
|
725
726
|
- lib/mumuki/domain/factories/exam_factory.rb
|
|
726
727
|
- lib/mumuki/domain/factories/exam_registration_factory.rb
|