forgejo/routers/private
Gusted fa502953a9
fix(sec): only degrade permission check for git push
- A permission check is done when incoming SSH connections are handled (this is
run before git hooks). If this check is for write access and AGit flow
is supported, then this check is degraded to a read check. The
motivation behind this is that for AGit flow the user does not need
write permissions but only read permissions.
- The `if` condition cannot check if this is for AGit flow, as the Git
protocol has not run yet and thus has to delay this permission check.
This `if` condition failed to consider that this also might be run for
LFS which does not care about AGit flow and would not do a delayed
permission check, so ensure that this degradition only happens when the
`git-receive-pack` command is being run (which roughly equals to `git
push`).
- Clarify code comment.
- Added integration test.

(cherry picked from commit 60c1af244a)

Conflicts:
	tests/integration/git_test.go
   - t.Context() does not exist
   - tests do not loop over Git object formats
2025-05-02 07:09:35 +02:00
..
tests/repos Fix verifyCommits error when push a new branch (#26664) 2023-08-30 02:27:53 +00:00
actions.go Clean up log messages (#30313) 2024-04-15 16:11:14 +02:00
default_branch.go Move get/set default branch from git package to gitrepo package to hide repopath (#29126) 2024-03-11 23:36:59 +07:00
hook_post_receive.go Merge pull request '[gitea] week 2024-20-v7.0 cherry pick (release/v1.22 -> v7.0/forgejo)' (#3772) from earl-warren/wcp/2024-20-v7.0 into v7.0/forgejo 2024-05-16 15:36:08 +00:00
hook_post_receive_test.go enable linter testifylint on v7 (#4572) 2024-07-30 19:42:06 +00:00
hook_pre_receive.go fix(hook): repo admins are wrongly denied the right to force merge 2024-06-02 22:05:16 +02:00
hook_proc_receive.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
hook_verification.go Clean up log messages (#30313) 2024-04-15 16:11:14 +02:00
hook_verification_test.go enable linter testifylint on v7 (#4572) 2024-07-30 19:42:06 +00:00
internal.go fix(sec): use constant time check for internal token 2024-10-28 06:17:16 +00:00
internal_repo.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
key.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
mail.go Clean up log messages (#30313) 2024-04-15 16:11:14 +02:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
manager.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
manager_process.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
manager_unix.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
manager_windows.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
restore_repo.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
serv.go fix(sec): only degrade permission check for git push 2025-05-02 07:09:35 +02:00
ssh_log.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00