Skip to content

Commit 1da2dca

Browse files
committed
Allow teachers to register a passkey for themselves
1 parent 2485580 commit 1da2dca

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

app/controllers/webauthn_credentials_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def set_user_and_authorize
112112
@user = InternalUser.find(params[:internal_user_id])
113113
end
114114
params[:user_id] = @user.id_with_type # for the breadcrumbs
115-
authorize(@user, :update?)
115+
authorize(@user, :register_webauthn_credential?)
116116
end
117117

118118
def set_webauthn_credential

app/policies/external_user_policy.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ def change_codeharbor_link?
2121
admin? || @record == @user
2222
end
2323

24+
def register_webauthn_credential?
25+
admin? || (@record == @user && Pundit.policy(@user, WebauthnCredential).new?)
26+
end
27+
2428
class Scope < Scope
2529
def resolve
2630
if @user.admin?

app/policies/internal_user_policy.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ def show?
1717
define_method(action) { admin? || @record == @user }
1818
end
1919

20+
def register_webauthn_credential?
21+
admin? || (@record == @user && Pundit.policy(@user, WebauthnCredential).new?)
22+
end
23+
2024
class Scope < Scope
2125
def resolve
2226
if @user.admin?

0 commit comments

Comments
 (0)