52 lines
1.3 KiB
Crystal
52 lines
1.3 KiB
Crystal
class AuthD::Request
|
|
IPC::JSON.message EditContacts, 16 do
|
|
property email : String? = nil
|
|
property phone : String? = nil
|
|
|
|
def initialize(@email, @phone)
|
|
end
|
|
|
|
def handle(authd : AuthD::Service, fd : Int32)
|
|
logged_user = authd.get_logged_user? fd
|
|
return Response::Error.new "you must be logged" if logged_user.nil?
|
|
|
|
# Get the full AuthD::User instance, not just the public view.
|
|
user = authd.user? logged_user.uid
|
|
return Response::Error.new "unknown user" if user.nil?
|
|
|
|
if email = @email
|
|
# FIXME: This *should* require checking the new mail, with
|
|
# a new activation key and everything else.
|
|
user.contact.email = email
|
|
end
|
|
|
|
if phone = @phone
|
|
user.contact.phone = phone
|
|
end
|
|
|
|
authd.users_per_uid.update user
|
|
|
|
Response::UserEdited.new user.uid
|
|
end
|
|
end
|
|
AuthD.requests << EditContacts
|
|
|
|
IPC::JSON.message GetContacts, 18 do
|
|
def initialize()
|
|
end
|
|
|
|
def handle(authd : AuthD::Service, fd : Int32)
|
|
logged_user = authd.get_logged_user? fd
|
|
return Response::Error.new "you must be logged" if logged_user.nil?
|
|
|
|
# Get the full AuthD::User instance, not just the public view.
|
|
user = authd.user? logged_user.uid
|
|
return Response::Error.new "unknown user" if user.nil?
|
|
|
|
_c = user.contact
|
|
Response::Contacts.new user.uid, _c.email, _c.phone
|
|
end
|
|
end
|
|
AuthD.requests << GetContacts
|
|
end
|