mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 06:25:51 +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.originUserName.getOrElse(repository.userName),
|
||||||
repository.originRepositoryName.getOrElse(repository.repositoryName)
|
repository.originRepositoryName.getOrElse(repository.repositoryName)
|
||||||
),
|
),
|
||||||
getRepositoryManagers(repository.userName)
|
getRepositoryManagers(repository.userName, repository.repositoryName)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -407,7 +407,7 @@ trait RepositoryService { self: AccountService =>
|
|||||||
if (withoutPhysicalInfo) {
|
if (withoutPhysicalInfo) {
|
||||||
Nil
|
Nil
|
||||||
} else {
|
} else {
|
||||||
getRepositoryManagers(repository.userName)
|
getRepositoryManagers(repository.userName, repository.repositoryName)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -485,18 +485,21 @@ trait RepositoryService { self: AccountService =>
|
|||||||
if (withoutPhysicalInfo) {
|
if (withoutPhysicalInfo) {
|
||||||
Nil
|
Nil
|
||||||
} else {
|
} 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)) {
|
if (getAccountByUserName(userName).exists(_.isGroupAccount)) {
|
||||||
getGroupMembers(userName).collect { case x if (x.isManager) => x.userName }
|
getGroupMembers(userName).collect { case x if (x.isManager) => x.userName }
|
||||||
} else {
|
} else {
|
||||||
Seq(userName)
|
Seq(userName)
|
||||||
}
|
} ++ getCollaboratorUserNames(userName, repositoryName, Seq(Role.ADMIN))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the last activity date of the repository.
|
* Updates the last activity date of the repository.
|
||||||
|
|||||||
Reference in New Issue
Block a user