add /tu/ (get) index

This commit implements the '/tu' Trusted User index page.

In addition to this functionality, this commit introduces
the following jinja2 filters:

- dt: util.timestamp_to_datetime
- as_timezone: util.as_timezone
- dedupe_qs: util.dedupe_qs
- urlencode: urllib.parse.quote_plus

There's also a new decorator that can be used to enforce
permissions: `account_type_required`. If a user does not
meet account type requirements, they are redirected to '/'.

```
@auth_required(True)
@account_type_required({"Trusted User"})
async def some_route(request: fastapi.Request):
    return Response("You are a Trusted User!")
```

Routes added:

- `GET /tu`: aurweb.routers.trusted_user.trusted_user

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-06-18 04:33:48 -07:00
parent a6bba601a9
commit d674aaf736
10 changed files with 808 additions and 3 deletions

View file

@ -7,11 +7,29 @@
{% endif %}
<li><a href="/packages/">{% trans %}Packages{% endtrans %}</a></li>
{% if request.user.is_authenticated() %}
{% if request.user.is_trusted_user() or request.user.is_developer() %}
<li>
<a href="/requests/">{% trans %}Requests{% endtrans %}</a>
</li>
<li>
<a href="/accounts/">{% trans %}Accounts{% endtrans %}</a>
</li>
{% endif %}
<li>
<a href="/account/{{ request.user.Username }}/edit">
{% trans %}My Account{% endtrans %}
</a>
</li>
{% if request.user.is_trusted_user() %}
<li>
<a href="/tu">{% trans %}Trusted User{% endtrans %}</a>
</li>
{% endif %}
<li>
<a href="/logout/?next={{ next }}">
{% trans %}Logout{% endtrans %}