Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

A free and open-source forge that lives in your Git repo.

Fold admin work into repository settings and a Users page

9579c1f976254fdeb2ec73d4016db5b25c7921c1 · Keenan Nemetz · 14d ago · parent 381d6aac

Fold admin work into repository settings and a Users page

Remove the combined /admin tabs. Per-repository access rules now live on the repository's Settings page, visible to instance admins while repository details and the danger zone stay with repository admins. User management moves to /users, linked from the top navigation only for instance admins, and repository creation moves to /repos/new. Align the invite, danger-zone, and settings forms with the shared card-and-actions layout, and make settings section headings consistent.

server/web/admin_repos.go +2−2

@@ -2,7 +2,7 @@ package web
2 2
3 3 // Creating a repository is an instance-admin operation because it chooses the
4 4 // owner and the name that every clone URL will use. After creation the admin is
5 // sent straight to the access editor, which is the next thing they usually need.
5 // sent straight to the repository's Settings page, where access rules live.
6 6
7 7 import (
8 8 "net/http"
@@ -79,5 +79,5 @@ func (w *Web) CreateAdminRepo(rw http.ResponseWriter, r *http.Request) {
79 79 }
80 80 }
81 81 w.audit("web.admin.repo.create", pr.account.Name, m.Name+" owner="+owner.Name)
82 http.Redirect(rw, r, "/admin/repos/"+m.Name+"/access", http.StatusSeeOther)
82 http.Redirect(rw, r, "/r/"+m.Name+"/settings", http.StatusSeeOther)
83 83 }