On 07/05/2023 17:37, toras wrote:
Commit abc29122c7f2 has been addressed to allow repository group owner changes.
I think the owner change itself is working.
However, for non-admin users, the permission evaluation in the repository group seems to be incorrect.

For example, if you try to create a repository in that repository group as a changed owner user, you will get the error 'no permission to create repo in xxxxxxxx'. After a little research, it seemed to me that the repository_group_permissions() in auth.py, which is used beyond the HasRepoGroupPermissionLevel() call, needs to be evaluated for being the owner of the repository group.
Could you please confirm this?


I think you are right.

Before, group ownership couldn't be used for anything, and everybody had to use explicit permissions on the group instead. On group creation, the owner is thus given explicit admin permissions unless it is a global admin. (That create problems if global admin permissions is removed from the user, and the user thus loses permissions for the groups they own.)

Recently, we made group ownership more manageable, but that also exposes that we have to make the implementation more complete. The new owner has to be given admin permissions somehow.

I think repository_group_permissions has to give admin permissions for the group owner, similar to how repository_permissions gives admin permissions to the repo owner. That shouldn't make the computation more complex or expensive, so that should be fine.

I propose https://kallithea-scm.org/repos/kallithea-incoming/changeset/dee1b60bad29621882eb769eb5bc8707647ccf1d .

Also, we should stop giving explicit admin permissions on group creation. But that is a change with no immediate benefit, so that should probably happen on the stable branch.

I propose https://kallithea-scm.org/repos/kallithea-incoming/changeset/bf7369172810fb1a9452af767a2168edba3dc2f3

Please, can you test these changes and verify they solve the problem for you?

Do you see other problems related to these changes? Any other places where the code makes incorrect assumptions on repo groups and owner / permissions?


Additionally, I have a question regarding the permission evaluation for repository groups, separate from the issue mentioned above. Currently, regular users cannot create repositories within a repository group unless they have administrative privileges for the group.
I feel that requiring administrative privileges is a bit excessive.
What are your thoughts on this matter?


If you edit a repository group, the permissions tab will describe it as "Write" as "(Add repos)". Admin access should not be necessary. Please verify that you really see the behaviour you describe.

(For some reason, repo group creation is more constrained in than repo creation... but that's yet another story.)


/Mads

_______________________________________________
kallithea-general mailing list
kallithea-general@sfconservancy.org
https://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to