roundabout,
created on Friday, 8 December 2023, 15:30:10 (1702049410),
received on Wednesday, 31 July 2024, 06:54:39 (1722408879)
Author identity: vlad <vlad.muntoiu@gmail.com>
5ed104aa0626b5794d3d20d17c22c6cfb8a65612
app.py
@@ -585,6 +585,27 @@ def repositoryForum(username, repository):
return flask.render_template("repo-forum.html", username=username, repository=repository)
@app.route("/<username>/<repository>/users/")
def repositoryUsers(username, repository):
if not (getVisibility(username, repository) or getPermissionLevel(flask.session.get("username"), username,
repository) is not None):
flask.abort(403)
serverRepoLocation = os.path.join(config.REPOS_PATH, os.path.join(username, repository))
app.logger.info(f"Loading {serverRepoLocation}")
if not os.path.exists(serverRepoLocation):
app.logger.error(f"Cannot load {serverRepoLocation}")
return flask.render_template("not-found.html"), 404
repo = git.Repo(serverRepoLocation)
repoData = Repo.query.filter_by(route=f"/{username}/{repository}").first()
relationships = RepoAccess.query.filter_by(repo=repoData)
return flask.render_template("repo-users.html", username=username, repository=repository, repoData=repoData, relationships=relationships, repo=repo)
@app.route("/<username>/<repository>/branches/")
def repositoryBranches(username, repository):
if not (getVisibility(username, repository) or getPermissionLevel(flask.session.get("username"), username,
templates/default.html
@@ -68,46 +68,9 @@
{% block content %}{% endblock %}
</main>
<footer>
<x-hbox id="footer-lists">
<dl>
<dt>Main</dt>
<dd>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/newrepo">New repository</a></li>
<li><a href="/notifications">Notifications</a></li>
<li><a href="/alerts">Alerts</a></li>
</ul>
</dd>
</dl>
<dl>
<dt>Explore</dt>
<dd>
<ul>
<li><a href="/hot">Trending</a></li>
<li><a href="/search">Search</a></li>
</ul>
</dd>
</dl>
<dl>
<dt>Information</dt>
<dd>
<ul>
<li><a href="/help">Help</a></li>
<li><a href="/about">About</a></li>
</ul>
</dd>
</dl>
<dl>
<dt>Account</dt>
<dd>
<ul>
<li><a href="/settings">Settings</a></li>
<li><a href="/{{ loggedInUser }}">Profile</a></li>
<li><a href="/logout">Log out</a></li>
</ul>
</dd>
</dl>
<x-hbox>
<a href="/about">About</a>
<a href="/help">Help</a>
</x-hbox>
<hr>
<p>
templates/repo-users.html
@@ -0,0 +1,33 @@
{% extends "repo.html" %}
{% block content %}
<x-vbox>
<x-frame style="--width: 896px;" class="flexible-space">
<x-vbox>
{% for relationship in relationships %}
<article class="card card-horizontal">
<figure class="branch-icon">
<a href="/{{ relationship.user.username }}">
<img src="/info/{{ relationship.user.username }}/avatar" style="width: 48px; height: 48px;">
</a>
</figure>
<section class="card-main flexible-space">
<h3>{{ relationship.user.username }}</h3>
{% if relationship.user.username == username %}
Owner
{% elif relationship.accessLevel == 0 %}
{% if repo.visibility %}
Contributor
{% else %}
Read-only
{% endif %}
{% elif relationship.accessLevel == 1 %}
Read-write
{% elif relationship.accessLevel == 2 %}
Administrator
{% endif %}
</section>
{% endfor %}
</x-vbox>
</x-frame>
</x-vbox>
{% endblock %}
templates/repo.html
@@ -19,6 +19,7 @@
<!-- <li><a href="/{{ username }}/{{ repository }}/activity">Activity</a></li>-->
<!-- <li><a href="/{{ username }}/{{ repository }}/people">People</a></li>-->
<!-- <li><a href="/{{ username }}/{{ repository }}/ci">CI</a></li>-->
<li><a href="/{{ username }}/{{ repository }}/users">Users</a></li>
<li><a href="/{{ username }}/{{ repository }}/settings">Settings</a></li>
</ul>
<x-buttonbox>