From 00c202a63a8bbc9aa9b70e5745cb0fcfc19d506e Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Wed, 14 Jun 2023 18:39:23 +0200 Subject: [PATCH] New DecodeToken request. --- src/requests/admin.cr | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/requests/admin.cr b/src/requests/admin.cr index 54701ba..75470b1 100644 --- a/src/requests/admin.cr +++ b/src/requests/admin.cr @@ -83,4 +83,26 @@ class AuthD::Request end end AuthD.requests << BootstrapFirstAdmin + + IPC::JSON.message DecodeToken, 14 do + property token : String + + def initialize(@token) + end + + def handle(authd : AuthD::Service, fd : Int32) + logged_user = authd.get_logged_user_full? fd + return Response::ErrorMustBeAuthenticated.new if logged_user.nil? + logged_user.assert_permission("authd", "*", User::PermissionLevel::Read) + + token_payload = AuthD::Token.from_s authd.configuration.secret_key, token + user = authd.users_per_uid.get? token_payload.uid.to_s + if user + Response::User.new user.to_public + else + Response::ErrorUserNotFound.new + end + end + end + AuthD.requests << DecodeToken end