Fixed teacher self registration api
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Dominic Grimm 2022-02-13 13:08:04 +01:00
parent c07cef18da
commit b58f5cbaa1
2 changed files with 12 additions and 12 deletions

View file

@ -90,11 +90,11 @@ module Backend
end end
# User's is one of *roles* # User's is one of *roles*
def role?(external = true, *roles : Schema::UserRole) : Bool def role?(external_check = true, *roles : Schema::UserRole) : Bool
return false unless authenticated? return false unless authenticated?
roles.each do |role| roles.each do |role|
return true if @role == role && if external return true if @role == role && if external_check
role == case @external.not_nil! role == case @external.not_nil!
when Db::Teacher when Db::Teacher
Schema::UserRole::Teacher Schema::UserRole::Teacher
@ -110,30 +110,30 @@ module Backend
end end
# :ditto: # :ditto:
def role!(external = true, *roles : Schema::UserRole) : Bool def role!(external_check = true, *roles : Schema::UserRole) : Bool
raise "Invalid permissions" unless role? external, *roles raise "Invalid permissions" unless role? external, *roles
true true
end end
# User is teacher # User is teacher
def teacher?(external = false) : Bool def teacher?(external_check = true) : Bool
role? external, Schema::UserRole::Teacher role? external_check, Schema::UserRole::Teacher
end end
# :ditto: # :ditto:
def teacher! : Bool def teacher!(external_check = true) : Bool
role! external, Schema::UserRole::Teacher role! external_check, Schema::UserRole::Teacher
end end
# User is student # User is student
def student?(external = false) : Bool def student?(external_check = true) : Bool
role? external, Schema::UserRole::Student role? external_check, Schema::UserRole::Student
end end
# :ditto: # :ditto:
def student! : Bool def student!(external_check = true) : Bool
role! external, Schema::UserRole::Student role! external_check, Schema::UserRole::Student
end end
end end
end end

View file

@ -97,7 +97,7 @@ module Backend
@[GraphQL::Field] @[GraphQL::Field]
# Self register as teacher # Self register as teacher
def register_teacher(context : Context, input : TeacherInput) : Teacher def register_teacher(context : Context, input : TeacherInput) : Teacher
context.teacher? external: false context.teacher! external_check: false
Teacher.new( Teacher.new(
Db::Teacher.create!(user_id: context.user.not_nil!.id, max_students: input.max_students, skif: input.skif) Db::Teacher.create!(user_id: context.user.not_nil!.id, max_students: input.max_students, skif: input.skif)