mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-07 14:05:52 +01:00
(refs #2031) Fix permission check for the repository menu
This commit is contained in:
@@ -338,7 +338,7 @@ trait RepositoryService { self: AccountService =>
|
||||
repository.originUserName.getOrElse(repository.userName),
|
||||
repository.originRepositoryName.getOrElse(repository.repositoryName)
|
||||
),
|
||||
getRepositoryManagers(repository.userName)
|
||||
getRepositoryManagers(repository.userName, repository.repositoryName)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -407,7 +407,7 @@ trait RepositoryService { self: AccountService =>
|
||||
if (withoutPhysicalInfo) {
|
||||
Nil
|
||||
} else {
|
||||
getRepositoryManagers(repository.userName)
|
||||
getRepositoryManagers(repository.userName, repository.repositoryName)
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -485,18 +485,21 @@ trait RepositoryService { self: AccountService =>
|
||||
if (withoutPhysicalInfo) {
|
||||
Nil
|
||||
} else {
|
||||
getRepositoryManagers(repository.userName)
|
||||
getRepositoryManagers(repository.userName, repository.repositoryName)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private def getRepositoryManagers(userName: String)(implicit s: Session): Seq[String] =
|
||||
/**
|
||||
* TODO It seems to be able to improve performance. For example, RequestCache can be used for getAccountByUserName call.
|
||||
*/
|
||||
private def getRepositoryManagers(userName: String, repositoryName: String)(implicit s: Session): Seq[String] =
|
||||
if (getAccountByUserName(userName).exists(_.isGroupAccount)) {
|
||||
getGroupMembers(userName).collect { case x if (x.isManager) => x.userName }
|
||||
} else {
|
||||
Seq(userName)
|
||||
}
|
||||
} ++ getCollaboratorUserNames(userName, repositoryName, Seq(Role.ADMIN))
|
||||
|
||||
/**
|
||||
* Updates the last activity date of the repository.
|
||||
|
||||
Reference in New Issue
Block a user