tree 2cdb7d9cfef07ff4d4a1394a80f312e7189c22f8
parent 8883950795bbfcab8b6cb9164f3909dee895af2c
author Edwin Kempin <ekempin@google.com> 1673950551 +0100
committer Edwin Kempin <ekempin@google.com> 1673954482 +0100

Rework checking preconditions for rebase

* Pull the permission check out of the RebaseUtil method that checks
  preconditions:
  * This allows us to do the permission check first in the rebase REST
    endpoints. If the calling user has no permissions to rebase, we
    should reject the request immediately and not open any resources
    (e.g. we should not open the repository).
  * This makes the permission checks more explicit which improves
    readability (the permission check is easy to miss if it’s done in a
    helper method).
  * To be on the safe side let RebaseChain still check the permission
    for every change in the chain (although this should not be
    necessary, since the rebase permission is assigned on the target
    branch the result of the permission evaluation should be the same
    for all changes in a chain).

* Pull the checking whether the project is writable out of the
  RebaseUtil method that checks preconditions:
  This check needs to be done only once, but RebaseChain checked this
  once per change in the chain.

* Make the RebaseUtil method that checks preconditions non-static:
  This way it can make use of the psUtil member variable and callers do
  not need to pass this in.

* Remove unnecessary else in RebaseUtil#verifyRebasePreconditions.

Release-Notes: skip
Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: If8882684e88f1f5e44a7885d296b134911a06877
