mirror of
https://git.pleroma.social/pleroma/relay.git
synced 2024-11-24 07:21:08 +00:00
create admin whitelist page
This commit is contained in:
parent
a163f2baab
commit
5dcf375247
|
@ -25,7 +25,7 @@
|
||||||
%tr
|
%tr
|
||||||
%td.instance << Instance
|
%td.instance << Instance
|
||||||
%td.software << Software
|
%td.software << Software
|
||||||
%td << Joined
|
%td.date << Joined
|
||||||
%td.remove
|
%td.remove
|
||||||
|
|
||||||
%tbody
|
%tbody
|
||||||
|
|
|
@ -1,5 +1,31 @@
|
||||||
-extends "base.haml"
|
-extends "base.haml"
|
||||||
-set page="Whitelist"
|
-set page="Whitelist"
|
||||||
-block content
|
-block content
|
||||||
.section
|
%details.section
|
||||||
UvU
|
%summary << Add Domain
|
||||||
|
%form(target="/admin/whitelist", method="POST")
|
||||||
|
#add-domain
|
||||||
|
%label(for="domain") << Domain
|
||||||
|
%input(type="domain", id="domain" name="domain", placeholder="Domain")
|
||||||
|
|
||||||
|
%input(type="submit" value="Add Domain")
|
||||||
|
|
||||||
|
#whitelist.section
|
||||||
|
%table
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%td.domain << Domain
|
||||||
|
%td.date << Added
|
||||||
|
%td.remove
|
||||||
|
|
||||||
|
%tbody
|
||||||
|
-for item in whitelist
|
||||||
|
%tr
|
||||||
|
%td.domain
|
||||||
|
=item.domain
|
||||||
|
|
||||||
|
%td.date
|
||||||
|
=item.created.strftime("%Y-%m-%d")
|
||||||
|
|
||||||
|
%td.remove
|
||||||
|
%a(href="/admin/whitelist/delete/{{item.domain}}" title="Remove whitlisted domain") << ✖
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
form input[type="submit"] {
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whitelist .domain{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whitelist .date {
|
||||||
|
width: max-content;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#add-domain {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: max-content auto;
|
||||||
|
grid-gap: var(--spacing);
|
||||||
|
margin-top: var(--spacing);
|
||||||
|
margin-bottom: var(--spacing);
|
||||||
|
}
|
|
@ -193,7 +193,7 @@ class AdminWhitelist(View):
|
||||||
|
|
||||||
with self.database.session() as conn:
|
with self.database.session() as conn:
|
||||||
context = {
|
context = {
|
||||||
'domains': tuple(conn.execute('SELECT * FROM whitelist').all())
|
'whitelist': tuple(conn.execute('SELECT * FROM whitelist').all())
|
||||||
}
|
}
|
||||||
|
|
||||||
if error:
|
if error:
|
||||||
|
@ -206,6 +206,34 @@ class AdminWhitelist(View):
|
||||||
return Response.new(data, ctype = 'html')
|
return Response.new(data, ctype = 'html')
|
||||||
|
|
||||||
|
|
||||||
|
async def post(self, request: Request) -> Response:
|
||||||
|
data = await request.post()
|
||||||
|
|
||||||
|
if not data['domain']:
|
||||||
|
return await self.get(request, error = 'Missing domain')
|
||||||
|
|
||||||
|
with self.database.session(True) as conn:
|
||||||
|
if (ban := conn.get_domain_whitelist(data['domain'])):
|
||||||
|
return await self.get(request, message = "Domain already in whitelist")
|
||||||
|
|
||||||
|
conn.put_domain_whitelist(data['domain'])
|
||||||
|
|
||||||
|
return await self.get(request, message = "Added/updated domain ban")
|
||||||
|
|
||||||
|
|
||||||
|
@register_route('/admin/whitelist/delete/{domain}')
|
||||||
|
class AdminWhitlistDelete(View):
|
||||||
|
async def get(self, request: Request, domain: str) -> Response:
|
||||||
|
with self.database.session() as conn:
|
||||||
|
if not (conn.get_domain_whitelist(domain)):
|
||||||
|
msg = 'Whitelisted domain not found'
|
||||||
|
return await AdminWhitelist.run("GET", request, message = msg)
|
||||||
|
|
||||||
|
conn.del_domain_whitelist(domain)
|
||||||
|
|
||||||
|
return await AdminWhitelist.run("GET", request, message = 'Removed domain from whitelist')
|
||||||
|
|
||||||
|
|
||||||
@register_route('/admin/domain_bans')
|
@register_route('/admin/domain_bans')
|
||||||
class AdminDomainBans(View):
|
class AdminDomainBans(View):
|
||||||
async def get(self,
|
async def get(self,
|
||||||
|
|
Loading…
Reference in a new issue