From f9fda26e7aef4d5fcddbdf3a4cc6da32f567b7cd Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Mon, 11 Sep 2017 02:27:22 +0900 Subject: [PATCH] Add RepositoryService#hasOwnerRole() --- .../scala/gitbucket/core/service/RepositoryService.scala | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/scala/gitbucket/core/service/RepositoryService.scala b/src/main/scala/gitbucket/core/service/RepositoryService.scala index cf54dbbe7..769f0e108 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryService.scala @@ -413,6 +413,15 @@ trait RepositoryService { self: AccountService => q1.union(q2).list.filter { x => filter.isEmpty || filter.exists(_.name == x._2) }.map(_._1) } + def hasOwnerRole(owner: String, repository: String, loginAccount: Option[Account])(implicit s: Session): Boolean = { + loginAccount match { + case Some(a) if(a.isAdmin) => true + case Some(a) if(a.userName == owner) => true + case Some(a) if(getGroupMembers(owner).exists(_.userName == a.userName)) => true + case Some(a) if(getCollaboratorUserNames(owner, repository, Seq(Role.ADMIN)).contains(a.userName)) => true + case _ => false + } + } def hasDeveloperRole(owner: String, repository: String, loginAccount: Option[Account])(implicit s: Session): Boolean = { loginAccount match {