dnsmanager/src/requests/zone.cr

136 lines
3.7 KiB
Crystal
Raw Normal View History

2023-05-07 17:28:11 +02:00
require "ipc/json"
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
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
accepted_domains = dnsmanagerd.configuration.accepted_domains.not_nil!
template_directory = dnsmanagerd.configuration.template_directory
dnsmanagerd.storage.new_domain accepted_domains, template_directory, user.uid, @domain
2023-06-16 18:41:20 +02:00
end
end
2023-06-18 01:32:37 +02:00
DNSManager.requests << NewDomain
2023-06-16 18:41:20 +02:00
2023-06-27 13:00:26 +02:00
IPC::JSON.message DeleteDomain, 10 do
property domain : String
2023-06-27 13:00:26 +02:00
def initialize(@domain)
end
2023-05-07 18:32:32 +02:00
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
user = dnsmanagerd.get_logged_user event
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
2023-06-27 13:00:26 +02:00
dnsmanagerd.storage.delete_domain user.uid, @domain
end
end
2023-06-27 13:00:26 +02:00
DNSManager.requests << DeleteDomain
2023-06-27 13:00:26 +02:00
IPC::JSON.message AddOrUpdateZone, 11 do
property zone : DNSManager::Storage::Zone
2023-06-27 13:00:26 +02:00
def initialize(@zone)
end
2023-05-07 18:32:32 +02:00
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
user = dnsmanagerd.get_logged_user event
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
2023-06-27 13:00:26 +02:00
dnsmanagerd.storage.add_or_update_zone user.uid, zone
end
end
2023-06-27 13:00:26 +02:00
DNSManager.requests << AddOrUpdateZone
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
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
2023-05-07 21:05:53 +02:00
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
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
2023-05-07 20:50:56 +02:00
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
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
2023-05-08 17:34:50 +02:00
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
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
2023-05-08 17:34:50 +02:00
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
2023-06-18 02:36:30 +02:00
return Response::ErrorUserNotLogged.new unless user
2023-05-08 19:23:36 +02:00
dnsmanagerd.storage.delete_rr user.uid, @domain, @rrid
end
end
DNSManager.requests << DeleteRR
2024-02-27 07:42:10 +01:00
IPC::JSON.message AskGeneratedZoneFile, 17 do
property domain : String
def initialize(@domain)
end
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
user = dnsmanagerd.get_logged_user event
return Response::ErrorUserNotLogged.new unless user
dnsmanagerd.storage.get_generated_zonefile user.uid, @domain
end
end
DNSManager.requests << AskGeneratedZoneFile
end