2020-05-14 17:03:09 +02:00
|
|
|
require "uuid"
|
|
|
|
require "openssl"
|
|
|
|
require "json"
|
|
|
|
require "base64"
|
|
|
|
|
|
|
|
class FileStorage::Request
|
|
|
|
JSONIPC.request Login, 0 do
|
2020-05-17 23:24:32 +02:00
|
|
|
property mid : String = ""
|
|
|
|
|
2020-05-14 17:03:09 +02:00
|
|
|
property token : String
|
2020-05-17 23:24:32 +02:00
|
|
|
|
2020-05-14 17:03:09 +02:00
|
|
|
def initialize(@token)
|
|
|
|
@mid = UUID.random.to_s
|
|
|
|
end
|
|
|
|
|
|
|
|
def handle(filestoraged : FileStorage::Service, event : IPC::Event::Events)
|
|
|
|
logged_users = filestoraged.logged_users
|
|
|
|
|
|
|
|
user, _ = filestoraged.decode_token token
|
|
|
|
|
|
|
|
# FIXME: Maybe this should be moved to FileStorage::Service
|
2020-07-18 16:35:35 +02:00
|
|
|
fd = event.fd
|
2020-05-14 17:03:09 +02:00
|
|
|
|
|
|
|
filestoraged.logged_users[fd] = user
|
|
|
|
|
|
|
|
user_data = filestoraged.get_user_data user.uid
|
|
|
|
|
|
|
|
return Response::Login.new @mid
|
|
|
|
rescue e
|
2020-06-07 00:52:02 +02:00
|
|
|
return Errors::GenericError.new @mid, "unauthorized"
|
2020-05-14 17:03:09 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
FileStorage.requests << Login
|
|
|
|
end
|
|
|
|
|
|
|
|
class FileStorage::Response
|
|
|
|
JSONIPC.request Login, 5 do
|
|
|
|
property mid : String
|
|
|
|
def initialize(@mid)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|