2023-05-07 17:28:11 +02:00
|
|
|
require "ipc/json"
|
2020-12-12 05:38:16 +01:00
|
|
|
require "grok"
|
|
|
|
|
|
|
|
class DNSManager::Request
|
|
|
|
|
2023-06-16 18:41:20 +02:00
|
|
|
IPC::JSON.message NewDomain, 9 do
|
|
|
|
property domain : String
|
|
|
|
|
2023-06-17 12:57:51 +02:00
|
|
|
def initialize(@domain)
|
2023-06-16 18:41:20 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
|
|
|
dnsmanagerd.storage.new_domain user.uid, @domain
|
|
|
|
end
|
|
|
|
end
|
2023-06-18 01:32:37 +02:00
|
|
|
DNSManager.requests << NewDomain
|
2023-06-16 18:41:20 +02:00
|
|
|
|
2020-12-12 05:38:16 +01:00
|
|
|
IPC::JSON.message AddOrUpdateZone, 10 do
|
|
|
|
property zone : DNSManager::Storage::Zone
|
|
|
|
|
|
|
|
def initialize(@zone)
|
|
|
|
end
|
|
|
|
|
2023-05-07 18:32:32 +02:00
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
2020-12-12 05:38:16 +01:00
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
2023-05-07 16:45:09 +02:00
|
|
|
dnsmanagerd.storage.add_or_update_zone user.uid, zone
|
|
|
|
end
|
|
|
|
end
|
|
|
|
DNSManager.requests << AddOrUpdateZone
|
2020-12-12 05:38:16 +01:00
|
|
|
|
2023-05-07 16:45:09 +02:00
|
|
|
IPC::JSON.message DeleteZone, 11 do
|
|
|
|
property domain : String
|
2020-12-12 05:38:16 +01:00
|
|
|
|
2023-05-07 16:45:09 +02:00
|
|
|
def initialize(@domain)
|
|
|
|
end
|
2020-12-12 05:38:16 +01:00
|
|
|
|
2023-05-07 18:32:32 +02:00
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
2023-05-07 16:45:09 +02:00
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
|
|
|
dnsmanagerd.storage.delete_domain user.uid, @domain
|
2020-12-12 05:38:16 +01:00
|
|
|
end
|
|
|
|
end
|
2023-05-07 16:45:09 +02:00
|
|
|
DNSManager.requests << DeleteZone
|
2023-05-07 20:50:56 +02:00
|
|
|
|
2023-05-07 21:05:53 +02:00
|
|
|
IPC::JSON.message GetZone, 12 do
|
|
|
|
property domain : String
|
|
|
|
|
|
|
|
def initialize(@domain)
|
|
|
|
end
|
|
|
|
|
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
|
|
|
dnsmanagerd.storage.get_zone user.uid, @domain
|
|
|
|
end
|
|
|
|
end
|
|
|
|
DNSManager.requests << GetZone
|
|
|
|
|
|
|
|
IPC::JSON.message UserDomains, 13 do
|
2023-05-07 20:50:56 +02:00
|
|
|
def initialize()
|
|
|
|
end
|
|
|
|
|
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
|
|
|
dnsmanagerd.storage.user_domains user.uid
|
|
|
|
end
|
|
|
|
end
|
|
|
|
DNSManager.requests << UserDomains
|
2023-05-08 17:34:50 +02:00
|
|
|
|
|
|
|
IPC::JSON.message AddRR, 14 do
|
|
|
|
property domain : String
|
|
|
|
property rr : DNSManager::Storage::Zone::ResourceRecord
|
|
|
|
|
|
|
|
def initialize(@domain, @rr)
|
|
|
|
end
|
|
|
|
|
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
|
|
|
dnsmanagerd.storage.add_rr user.uid, @domain, @rr
|
|
|
|
end
|
|
|
|
end
|
|
|
|
DNSManager.requests << AddRR
|
|
|
|
|
|
|
|
IPC::JSON.message UpdateRR, 15 do
|
|
|
|
property domain : String
|
|
|
|
property rr : DNSManager::Storage::Zone::ResourceRecord
|
|
|
|
|
|
|
|
def initialize(@domain, @rr)
|
|
|
|
end
|
|
|
|
|
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
|
|
|
dnsmanagerd.storage.update_rr user.uid, @domain, @rr
|
|
|
|
end
|
|
|
|
end
|
|
|
|
DNSManager.requests << UpdateRR
|
2023-05-08 19:23:36 +02:00
|
|
|
|
|
|
|
IPC::JSON.message DeleteRR, 16 do
|
|
|
|
property domain : String
|
|
|
|
property rrid : UInt32
|
|
|
|
|
|
|
|
def initialize(@domain, @rrid)
|
|
|
|
end
|
|
|
|
|
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
|
|
|
user = dnsmanagerd.get_logged_user event
|
|
|
|
raise NotLoggedException.new if user.nil?
|
|
|
|
dnsmanagerd.storage.delete_rr user.uid, @domain, @rrid
|
|
|
|
end
|
|
|
|
end
|
|
|
|
DNSManager.requests << DeleteRR
|
2020-12-12 05:38:16 +01:00
|
|
|
end
|