uncia/uncia/frontend/templates/admin.haml
2020-10-10 23:47:08 -04:00

395 lines
14 KiB
Plaintext

-extends "base.html"
-set title = 'Admin'
-set retries = get.retries('all')
-set page = data.page
- block content
%div{'id': 'setmenu', 'class': 'section admin'}
-if page == 'instances'
%a{'href': '/admin?page=instances', 'class': 'setmenu-item selected'}< Instances
-else
%a{'href': '/admin?page=instances', 'class': 'setmenu-item'}< Instances
-if config.require_approval and len(data.requests) > 0
-if page == 'requests'
%a{'href': '/admin?page=requests', 'class': 'setmenu-item selected'}< Requests
-else
%a{'href': '/admin?page=requests', 'class': 'setmenu-item'}< Requests
-if config.whitelist or config.require_approval
-if page == 'whitelist'
%a{'href': '/admin?page=whitelist', 'class': 'setmenu-item selected'}< Whitelist
-else
%a{'href': '/admin?page=whitelist', 'class': 'setmenu-item'}< Whitelist
-if len(data.domainban) > 0
-if page == 'domainbans'
%a{'href': '/admin?page=domainbans', 'class': 'setmenu-item selected'}< Domain Bans
-else
%a{'href': '/admin?page=domainbans', 'class': 'setmenu-item'}< Domain Bans
-if len(data.userban) > 0
-if page == 'userbans'
%a{'href': '/admin?page=userbans', 'class': 'setmenu-item selected'}< User Bans
-else
%a{'href': '/admin?page=userbans', 'class': 'setmenu-item'}< User Bans
-if retries
-if page == 'retries'
%a{'href': '/admin?page=retries', 'class': 'setmenu-item selected'}< Retries
-else
%a{'href': '/admin?page=retries', 'class': 'setmenu-item'}< Retries
-if page == 'settings'
%a{'href': '/admin?page=settings', 'class': 'setmenu-item selected'}< Settings
-else
%a{'href': '/admin?page=settings', 'class': 'setmenu-item'}< Settings
-if page == 'instances'
%div{'class': 'section admin group instances'}
%p{'class': 'sec-header'} Instances
%table
%tr{'class': 'header'}
%td{'class': 'col1'} Instance
%td{'class': 'timestamp'} Date
%td{'class': 'col2', 'colspan': 3} Action
- for instance in data.instances
%tr{'class': 'instance_row {{instance.tag}}' }
%td{'class': 'col1 instance'}
%a{'href': 'https://{{instance.domain}}/about', 'target': '_new'}
{{instance.domain}} {% if instance.retries and len(instance.retries) > 0 %}({{len(instance.retries)}}){% endif %}
%td{'class': 'timestamp'}
{{instance.date}}
%td{'class': 'action'}
-if config.whitelist or config.require_approval:
-if instance.domain not in data.wldomains:
%form{'action': 'https://{{config.host}}/admin/add', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{instance.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'WL Add'}
-else
%form{'action': 'https://{{config.host}}/admin/remove', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{instance.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'WL Remove'}
%td{'class': 'action'}
%form{'action': 'https://{{config.host}}/admin/eject', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{instance.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Remove'}
%td{'class': 'col2 action'}
%form{'action': 'https://{{config.host}}/admin/ban', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{instance.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Ban'}
%tr
%form{'action': 'https://{{config.host}}/admin/ban', 'method': 'post'}
%td{'class': 'col1', 'colspan': 4}
%input{'class': 'domain', 'name': 'name', 'placeholder': 'domain or user@domain'}
%br
%input{'class': 'domain', 'name': 'reason', 'placeholder': 'Ban reason'}
%td{'class': 'col2 mainban'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Ban'}
-if page == 'requests'
%div{'class': 'section admin group requests'}
%p{'class': 'sec-header'} Follow Requests
%table
%tr{'class': 'header'}
%td{'class': 'col1'} Request
%td{'class': 'col2'} Action
- for domain in data.requests
%tr
%td{'class': 'col1 instance'}
%a{'href': 'https://{{domain.domain}}/about', 'target': '_new'}
{{domain.domain}}
%td{'class': 'col2'}
%form{'action': 'https://{{config.host}}/admin/accept', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{domain.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Accept'}
%form{'action': 'https://{{config.host}}/admin/deny', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{domain.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Deny'}
-if page == 'whitelist'
%div{'class': 'section admin group whitelist'}
%p{'class': 'sec-header'} Whitelist
%table
%tr{'class': 'header'}
%td{'class': 'col1'} Instance
%td{'class': 'col2'} Action
- for instance in data.whitelist
%tr{'class': 'instance_row'}
%td{'class': 'col1 instance'}
%a{'href': 'https://{{instance.domain}}/about', 'target': '_new'}
{{instance.domain}}
%td{'class': 'col2'}
%form{'action': 'https://{{config.host}}/admin/remove', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{instance.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Remove'}
%tr
%form{'action': 'https://{{config.host}}/admin/add', 'method': 'post'}
%td{'class': 'col1'}
%input{'class': 'domain', 'name': 'name', 'placeholder': 'domain'}
%td{'class': 'col2'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Add'}
-if page == 'domainbans'
%div{'class': 'section admin group domainbans'}
%p{'class': 'sec-header'} Domain Bans
%table
%tr{'class': 'header'}
%td{'class': 'col1'} Instance
%td{'class': 'reason'} Reason
%td{'class': 'col2'} Action
- for domain in data.domainban
%tr
%td{'class': 'col1 instance'}
%a{'href': 'https://{{domain.domain}}/about', 'target': '_new'}
{{domain.domain}}
%td{'class': 'reason'}
{{domain.reason}}
%td{'class': 'col2'}
%form{'action': 'https://{{config.host}}/admin/unban', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{domain.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Unban'}
-if page == 'userbans'
%div{'class': 'section admin group userbans'}
%p{'class': 'sec-header'} User Bans
%table
%tr{'class': 'header'}
%td{'class': 'col1'} User
%td{'class': 'reason'} Reason
%td{'class': 'col2'} Action
- for user in data.userban
%tr
%td{'class': 'col1 instance'}
-if user.domain != 'any'
%a{'href': 'https://{{user.domain}}/users/{{user.user}}', 'target': '_new'}
{{user.user}}@{{user.domain}}
-else
{{user.user}}@{{user.domain}}
%td{'class': 'reason'}
{{user.reason}}
%td{'class': 'col2'}
%form{'action': 'https://{{config.host}}/admin/unban', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{user.user}}@{{user.domain}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Unban'}
-if page == 'retries'
%div{'class': 'section admin group retries'}
%p{'class': 'sec-header'} Retries
%table
%tr{'class': 'header'}
%td{'class': 'col1'} ID
%td Inbox
%td Data
%td Headers
%td{'class': 'col2', 'colspan': 2} Action
-for retry in retries
%tr{'class': 'instance_row'}
%td{'class': 'col1 id'}
{{retry.id}}
%td
{{retry.inbox}}
%td
%textarea{'class': 'data'}<
{{retry.data}}
%td
%textarea{'class': 'headers'}<
{{retry.headers}}
%td{'class': 'action'}
%form{'action': 'https://{{config.host}}/admin/retry', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{retry.id}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Retry'}
%td{'class': 'col2 action'}
%form{'action': 'https://{{config.host}}/admin/remret', 'method': 'post'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'name': 'name', 'value': '{{retry.id}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Remove'}
-if page == 'settings'
%div{'class': 'group settings-div'}
%form{'action': 'https://{{config.host}}/admin/settings', 'method': 'post'}
%div{'class': 'section settings', 'id': 'info'}
%p{'class': 'sec-header'} Server Info
%label General Info
%textarea{'name': 'info', 'placeholder': 'Relay Info'}<
{% if config.info %}{{config.info}}{% endif %}
%label Relay Rules
%textarea{'name': 'rules', 'placeholder': 'Relay Rules'}<
{% if config.rules %}{{config.rules}}{% endif %}
%div{'class': 'section settings', 'id': 'settings'}
%p{'class': 'sec-header'} Relay Settings
%div{'class': 'grid-container'}
-if config.admin
-set admin = config.admin
-else
-set admin = 'None'
-if config.email
-set email = config.email
-else
-set email = 'None'
%div{'class': 'grid-item col1'}
%label Name
%input{'type': 'text', 'name': 'name', 'placeholder': 'Relay Name', 'value': '{{config.name}}'}
%label Contact E-Mail
%input{'type': 'text', 'name': 'email', 'placeholder': 'name@example.com', 'value': '{{email}}'}
%label Admin Fedi Account
%input{'type': 'text', 'name': 'admin', 'placeholder': 'username@fedi.example.com', 'value': '{{admin}}'}
%label New Instance Notification
%select{'name': 'notification'}
-if config.notification
%option{'value': 'yes', 'selected': None} Yes
%option{'value': 'no'} No (default)
-else
%option{'value': 'yes'} Yes
%option{'value': 'no', 'selected': None} No (default)
%label Block Other Relays
%select{'name': 'block_relays'}
-if config.block_relays
%option{'value': 'yes', 'selected': None} Yes (default)
%option{'value': 'no'} No
-else
%option{'value': 'yes'} Yes (default)
%option{'value': 'no', 'selected': None} No
%div{'class': 'grid-item col2'}
%label Show Instance Blocks
%select{'name': 'show_domainbans'}
-if config.show_domainbans
%option{'value': 'yes', 'selected': None} Yes
%option{'value': 'no'} No (default)
-else
%option{'value': 'yes'} Yes
%option{'value': 'no', 'selected': None} No (default)
%label Show User Blocks
%select{'name': 'show_userbans'}
-if config.show_userbans
%option{'value': 'yes', 'selected': None} Yes
%option{'value': 'no'} No (default)
-else
%option{'value': 'yes'} Yes
%option{'value': 'no', 'selected': None} No (default)
%label Require Approval
%select{'name': 'require_approval'}
-if config.require_approval
%option{'value': 'yes', selected: None} Yes (default)
%option{'value': 'no'} No
-else
%option{'value': 'yes'} Yes (default)
%option{'value': 'no', selected: None} No
%label Whitelist Mode
%select{'name': 'whitelist'}
-if config.whitelist
%option{'value': 'yes', selected: None} Yes
%option{'value': 'no'} No (default)
-else
%option{'value': 'yes'} Yes
%option{'value': 'no', selected: None} No (default)
%label Log Level
%select{'name': 'log_level'}
- for level in ['MERP', 'DEBUG', 'VERB', 'INFO', 'WARN', 'ERROR', 'CRIT']
-if config.log_level == level
%option{'value': '{{level}}', selected: None}
{{level}}
-else
%option{'value': '{{level}}'}
{{level}}
%div{'class': 'section settings', 'id': 'network'}
%p{'class': 'sec-header'} Network
%div{'class': 'grid-container'}
%div{'class': 'grid-item col1'}
%label Listen Address
%input{'type': 'text', 'name': 'address', 'placeholder': '127.0.0.1', 'value': '{{config.address}}'}
%label Listen Port
%input{'type': 'numeric', 'name': 'port', 'placeholder': '3621', 'value': '{{config.port}}'}
%label Hostname
%input{'type': 'text', 'name': 'host', 'placeholder': 'relay.example.com', 'value': '{{config.host}}'}
%div{'class': 'section settings', 'id': 'submit'}
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'type': 'submit', 'value': 'Save Settings', 'class': 'submit'}
%div{'class': 'section settings', 'id': 'code'}
%p{'class': 'sec-header'}< Authentication Code
%div{'class': 'grid-container'}
%div{'class': 'grid-item col1'}
-if data.auth_code
%a{'href': 'https://{{config.host}}/register?code=={data.auth_code}', 'target': '_new'}<
{{data.auth_code}}
-else
No Code
%div{'class': 'grid-item col2'}
%form{'action': 'https://{{config.host}}/admin/auth_code', 'method': 'post'}<
%input{'name': 'page', 'value': '{{page}}', 'hidden': None}
%input{'type': 'submit', 'name': 'action', 'value': 'Delete'}
%input{'type': 'submit', 'name': 'action', 'value': 'Regen'}