Monorepo for Tangled tangled.org
2

Configure Feed

Select the types of activity you want to include in your feed.

appview/acl: gate collaborator removal on knot version for now

Lewis: May this revision serve well! <lewis@tangled.org>

author
Lewis
date (Jun 9, 2026, 11:35 AM +0300) commit 9c76a52f parent d3e93280 change-id zlnxmoqu
+13 -9
+6 -5
appview/pages/pages.go
··· 1140 1140 } 1141 1141 1142 1142 type RepoAccessSettingsParams struct { 1143 - LoggedInUser *oauth.MultiAccountUser 1144 - RepoInfo repoinfo.RepoInfo 1145 - Active string 1146 - Tab string 1147 - Collaborators []Collaborator 1143 + LoggedInUser *oauth.MultiAccountUser 1144 + RepoInfo repoinfo.RepoInfo 1145 + Active string 1146 + Tab string 1147 + Collaborators []Collaborator 1148 + CanRemoveCollaborator bool 1148 1149 } 1149 1150 1150 1151 func (p *Pages) RepoAccessSettings(w io.Writer, params RepoAccessSettingsParams) error {
+1 -1
appview/pages/templates/repo/settings/access.html
··· 42 42 <p class="text-sm text-gray-500 dark:text-gray-400">{{ .Role }}</p> 43 43 </div> 44 44 45 - {{ if and (eq .Role "collaborator") $.RepoInfo.Roles.CollaboratorInviteAllowed }} 45 + {{ if and (eq .Role "collaborator") $.RepoInfo.Roles.CollaboratorInviteAllowed $.CanRemoveCollaborator }} 46 46 <button 47 47 hx-delete="/{{ $.RepoInfo.FullName }}/settings/collaborator" 48 48 hx-vals='{"collaborator": "{{ .Did }}"}'
+6 -3
appview/repo/settings.go
··· 13 13 "tangled.org/core/api/tangled" 14 14 15 15 "tangled.org/core/appview/db" 16 + "tangled.org/core/appview/knotcompat" 16 17 "tangled.org/core/appview/models" 17 18 "tangled.org/core/appview/oauth" 18 19 "tangled.org/core/appview/pages" 19 20 "tangled.org/core/appview/sites" 20 21 xrpcclient "tangled.org/core/appview/xrpcclient" 22 + "tangled.org/core/consts" 21 23 "tangled.org/core/orm" 22 24 "tangled.org/core/types" 23 25 ··· 457 459 collaborators := rp.acl.Collaborators(r.Context(), f) 458 460 459 461 rp.pages.RepoAccessSettings(w, pages.RepoAccessSettingsParams{ 460 - LoggedInUser: user, 461 - RepoInfo: rp.repoResolver.GetRepoInfo(r, user), 462 - Collaborators: collaborators, 462 + LoggedInUser: user, 463 + RepoInfo: rp.repoResolver.GetRepoInfo(r, user), 464 + Collaborators: collaborators, 465 + CanRemoveCollaborator: knotcompat.KnotHasCapability(r.Context(), f.Knot, rp.config.Core.Dev, consts.CapKnotACL), 463 466 }) 464 467 } 465 468