From 87b90c17680b4d1dbcbbf1dc232715c5c0e583e2 Mon Sep 17 00:00:00 2001 From: Luka Vandervelden Date: Sat, 16 Feb 2019 22:06:56 +0100 Subject: [PATCH] AuthD::Client#get_user?(login, password) added. --- src/authd.cr | 23 +++++++++++++++++++++++ src/main.cr | 15 +++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/authd.cr b/src/authd.cr index c2fdd3e..eb33980 100644 --- a/src/authd.cr +++ b/src/authd.cr @@ -11,6 +11,7 @@ module AuthD GetToken AddUser GetUser + GetUserByCredentials end enum ResponseTypes @@ -46,6 +47,13 @@ module AuthD }) end + class GetUserByCredentialsRequest + JSON.mapping({ + login: String, + password: String + }) + end + class Client < IPC::Client property key : String @@ -70,6 +78,21 @@ module AuthD end end + def get_user?(login : String, password : String) + send RequestTypes::GetUserByCredentials, { + :login => login, + :password => password + }.to_json + + response = read + + if response.type == ResponseTypes::Ok.value.to_u8 + User.from_json response.payload + else + nil + end + end + def get_user?(uid : Int32) send RequestTypes::GetUser, {:uid => uid}.to_json diff --git a/src/main.cr b/src/main.cr index bedd9de..f1ca305 100644 --- a/src/main.cr +++ b/src/main.cr @@ -93,6 +93,21 @@ IPC::Service.new "auth" do |event| user = passwd.add_user request.login, request.password client.send ResponseTypes::Ok, user.to_json + when RequestTypes::GetUserByCredentials + begin + request = GetUserByCredentialsRequest.from_json payload + rescue e + client.send ResponseTypes::MalformedRequest, e.message || "" + next + end + + user = passwd.get_user request.login, request.password + + if user + client.send ResponseTypes::Ok, user.to_json + else + client.send ResponseTypes::UserNotFound, "" + end when RequestTypes::GetUser begin request = GetUserRequest.from_json payload