user_validation
This commit is contained in:
parent
bef2e73fff
commit
af44f82e99
36
src/authd.cr
36
src/authd.cr
@ -69,6 +69,13 @@ class AuthD::Response
|
|||||||
initialize :uid
|
initialize :uid
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class UserValidated < Response
|
||||||
|
property uid : Int32
|
||||||
|
property email : String
|
||||||
|
|
||||||
|
initialize :uid, :email
|
||||||
|
end
|
||||||
|
|
||||||
class UsersList < Response
|
class UsersList < Response
|
||||||
property users : Array(::AuthD::User::Public)
|
property users : Array(::AuthD::User::Public)
|
||||||
|
|
||||||
@ -187,6 +194,17 @@ class AuthD::Request
|
|||||||
initialize :shared_key, :login, :password, :email, :phone, :profile
|
initialize :shared_key, :login, :password, :email, :phone, :profile
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class ValidateUser < Request
|
||||||
|
# Only clients that have the right shared key will be allowed
|
||||||
|
# to validate users.
|
||||||
|
property shared_key : String
|
||||||
|
|
||||||
|
property email : String
|
||||||
|
property activation_key : String
|
||||||
|
|
||||||
|
initialize :shared_key, :email, :activation_key
|
||||||
|
end
|
||||||
|
|
||||||
class GetUser < Request
|
class GetUser < Request
|
||||||
property user : Int32 | String
|
property user : Int32 | String
|
||||||
|
|
||||||
@ -380,6 +398,24 @@ module AuthD
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def validate_user(email : String, activation_key : String) : ::AuthD::User::Public | Exception
|
||||||
|
|
||||||
|
send Request::AddUser.new @key, email, activation_key
|
||||||
|
|
||||||
|
response = Response.from_ipc read
|
||||||
|
|
||||||
|
case response
|
||||||
|
when Response::UserValidated
|
||||||
|
response.user
|
||||||
|
when Response::Error
|
||||||
|
raise Exception.new response.reason
|
||||||
|
else
|
||||||
|
# Should not happen in serialized connections, but…
|
||||||
|
# it’ll happen if you run several requests at once.
|
||||||
|
Exception.new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def register(login : String, password : String, profile : JSON::Any?) : ::AuthD::User::Public?
|
def register(login : String, password : String, profile : JSON::Any?) : ::AuthD::User::Public?
|
||||||
send Request::Register.new login, password, profile
|
send Request::Register.new login, password, profile
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user