diff --git a/src/main/scala/model/Account.scala b/src/main/scala/model/Account.scala index ca7aff5..012c559 100644 --- a/src/main/scala/model/Account.scala +++ b/src/main/scala/model/Account.scala @@ -21,20 +21,19 @@ val removed = column[Boolean]("REMOVED") def * = (userName, fullName, mailAddress, password, isAdmin, url.?, registeredDate, updatedDate, lastLoginDate.?, image.?, groupAccount, removed) <> (Account.tupled, Account.unapply) } - - case class Account( - - userName: String, - fullName: String, - mailAddress: String, - password: String, - isAdmin: Boolean, - url: Option[String], - registeredDate: java.util.Date, - updatedDate: java.util.Date, - lastLoginDate: Option[java.util.Date], - image: Option[String], - isGroupAccount: Boolean, - isRemoved: Boolean - ) } + +case class Account( + userName: String, + fullName: String, + mailAddress: String, + password: String, + isAdmin: Boolean, + url: Option[String], + registeredDate: java.util.Date, + updatedDate: java.util.Date, + lastLoginDate: Option[java.util.Date], + image: Option[String], + isGroupAccount: Boolean, + isRemoved: Boolean +) diff --git a/src/main/scala/model/Activity.scala b/src/main/scala/model/Activity.scala index 7977047..8e3960e 100644 --- a/src/main/scala/model/Activity.scala +++ b/src/main/scala/model/Activity.scala @@ -15,15 +15,15 @@ val activityDate = column[java.util.Date]("ACTIVITY_DATE") def * = (userName, repositoryName, activityUserName, activityType, message, additionalInfo.?, activityDate, activityId) <> (Activity.tupled, Activity.unapply) } - - case class Activity( - userName: String, - repositoryName: String, - activityUserName: String, - activityType: String, - message: String, - additionalInfo: Option[String], - activityDate: java.util.Date, - activityId: Int = 0 - ) } + +case class Activity( + userName: String, + repositoryName: String, + activityUserName: String, + activityType: String, + message: String, + additionalInfo: Option[String], + activityDate: java.util.Date, + activityId: Int = 0 +) diff --git a/src/main/scala/model/Collaborator.scala b/src/main/scala/model/Collaborator.scala index 7ef52e0..1b96872 100644 --- a/src/main/scala/model/Collaborator.scala +++ b/src/main/scala/model/Collaborator.scala @@ -12,10 +12,10 @@ def byPrimaryKey(owner: String, repository: String, collaborator: String) = byRepository(owner, repository) && (collaboratorName is collaborator.bind) } - - case class Collaborator( - userName: String, - repositoryName: String, - collaboratorName: String - ) } + +case class Collaborator( + userName: String, + repositoryName: String, + collaboratorName: String +) diff --git a/src/main/scala/model/GroupMembers.scala b/src/main/scala/model/GroupMembers.scala index 966bdba..f0161d3 100644 --- a/src/main/scala/model/GroupMembers.scala +++ b/src/main/scala/model/GroupMembers.scala @@ -11,10 +11,10 @@ val isManager = column[Boolean]("MANAGER") def * = (groupName, userName, isManager) <> (GroupMember.tupled, GroupMember.unapply) } - - case class GroupMember( - groupName: String, - userName: String, - isManager: Boolean - ) } + +case class GroupMember( + groupName: String, + userName: String, + isManager: Boolean +) diff --git a/src/main/scala/model/Issue.scala b/src/main/scala/model/Issue.scala index d18c098..85c6014 100644 --- a/src/main/scala/model/Issue.scala +++ b/src/main/scala/model/Issue.scala @@ -31,18 +31,19 @@ def byPrimaryKey(owner: String, repository: String, issueId: Int) = byIssue(owner, repository, issueId) } - - case class Issue( - userName: String, - repositoryName: String, - issueId: Int, - openedUserName: String, - milestoneId: Option[Int], - assignedUserName: Option[String], - title: String, - content: Option[String], - closed: Boolean, - registeredDate: java.util.Date, - updatedDate: java.util.Date, - isPullRequest: Boolean) } + +case class Issue( + userName: String, + repositoryName: String, + issueId: Int, + openedUserName: String, + milestoneId: Option[Int], + assignedUserName: Option[String], + title: String, + content: Option[String], + closed: Boolean, + registeredDate: java.util.Date, + updatedDate: java.util.Date, + isPullRequest: Boolean +) diff --git a/src/main/scala/model/IssueComment.scala b/src/main/scala/model/IssueComment.scala index 8d42702..8d5e2be 100644 --- a/src/main/scala/model/IssueComment.scala +++ b/src/main/scala/model/IssueComment.scala @@ -19,16 +19,16 @@ def byPrimaryKey(commentId: Int) = this.commentId is commentId.bind } - - case class IssueComment( - userName: String, - repositoryName: String, - issueId: Int, - commentId: Int = 0, - action: String, - commentedUserName: String, - content: String, - registeredDate: java.util.Date, - updatedDate: java.util.Date - ) } + +case class IssueComment( + userName: String, + repositoryName: String, + issueId: Int, + commentId: Int = 0, + action: String, + commentedUserName: String, + content: String, + registeredDate: java.util.Date, + updatedDate: java.util.Date +) diff --git a/src/main/scala/model/IssueLabels.scala b/src/main/scala/model/IssueLabels.scala index 413dbd7..d6b83c1 100644 --- a/src/main/scala/model/IssueLabels.scala +++ b/src/main/scala/model/IssueLabels.scala @@ -10,10 +10,11 @@ def byPrimaryKey(owner: String, repository: String, issueId: Int, labelId: Int) = byIssue(owner, repository, issueId) && (this.labelId is labelId.bind) } - - case class IssueLabel( - userName: String, - repositoryName: String, - issueId: Int, - labelId: Int) } + +case class IssueLabel( + userName: String, + repositoryName: String, + issueId: Int, + labelId: Int +) diff --git a/src/main/scala/model/Labels.scala b/src/main/scala/model/Labels.scala index 13e66d9..e36746a 100644 --- a/src/main/scala/model/Labels.scala +++ b/src/main/scala/model/Labels.scala @@ -14,24 +14,24 @@ def byPrimaryKey(owner: String, repository: String, labelId: Int) = byLabel(owner, repository, labelId) def byPrimaryKey(userName: Column[String], repositoryName: Column[String], labelId: Column[Int]) = byLabel(userName, repositoryName, labelId) } +} - case class Label( - userName: String, - repositoryName: String, - labelId: Int = 0, - labelName: String, - color: String){ +case class Label( + userName: String, + repositoryName: String, + labelId: Int = 0, + labelName: String, + color: String){ - val fontColor = { - val r = color.substring(0, 2) - val g = color.substring(2, 4) - val b = color.substring(4, 6) + val fontColor = { + val r = color.substring(0, 2) + val g = color.substring(2, 4) + val b = color.substring(4, 6) - if(Integer.parseInt(r, 16) + Integer.parseInt(g, 16) + Integer.parseInt(b, 16) > 408){ - "000000" - } else { - "FFFFFF" - } + if(Integer.parseInt(r, 16) + Integer.parseInt(g, 16) + Integer.parseInt(b, 16) > 408){ + "000000" + } else { + "FFFFFF" } } } diff --git a/src/main/scala/model/Milestone.scala b/src/main/scala/model/Milestone.scala index 3aa4314..c392219 100644 --- a/src/main/scala/model/Milestone.scala +++ b/src/main/scala/model/Milestone.scala @@ -17,13 +17,14 @@ def byPrimaryKey(owner: String, repository: String, milestoneId: Int) = byMilestone(owner, repository, milestoneId) def byPrimaryKey(userName: Column[String], repositoryName: Column[String], milestoneId: Column[Int]) = byMilestone(userName, repositoryName, milestoneId) } - - case class Milestone( - userName: String, - repositoryName: String, - milestoneId: Int = 0, - title: String, - description: Option[String], - dueDate: Option[java.util.Date], - closedDate: Option[java.util.Date]) } + +case class Milestone( + userName: String, + repositoryName: String, + milestoneId: Int = 0, + title: String, + description: Option[String], + dueDate: Option[java.util.Date], + closedDate: Option[java.util.Date] +) diff --git a/src/main/scala/model/Profile.scala b/src/main/scala/model/Profile.scala index 3d2a2e7..9bfee3b 100644 --- a/src/main/scala/model/Profile.scala +++ b/src/main/scala/model/Profile.scala @@ -1,7 +1,7 @@ package model trait Profile { - val profile = slick.driver.H2Driver + val profile: slick.driver.JdbcProfile import profile.simple._ // java.util.Date Mapped Column Types @@ -15,3 +15,27 @@ } } + +object Profile extends { + val profile = slick.driver.H2Driver + +} with AccountComponent + with ActivityComponent + with CollaboratorComponent + with GroupMemberComponent + with IssueComponent + with IssueCommentComponent + with IssueLabelComponent + with LabelComponent + with MilestoneComponent + with PullRequestComponent + with RepositoryComponent + with SshKeyComponent + with WebHookComponent with Profile { + + /** + * Returns system date. + */ + def currentDate = new java.util.Date() + +} diff --git a/src/main/scala/model/PullRequest.scala b/src/main/scala/model/PullRequest.scala index 500e8ab..3ba87ea 100644 --- a/src/main/scala/model/PullRequest.scala +++ b/src/main/scala/model/PullRequest.scala @@ -17,16 +17,16 @@ def byPrimaryKey(userName: String, repositoryName: String, issueId: Int) = byIssue(userName, repositoryName, issueId) def byPrimaryKey(userName: Column[String], repositoryName: Column[String], issueId: Column[Int]) = byIssue(userName, repositoryName, issueId) } - - case class PullRequest( - userName: String, - repositoryName: String, - issueId: Int, - branch: String, - requestUserName: String, - requestRepositoryName: String, - requestBranch: String, - commitIdFrom: String, - commitIdTo: String - ) } + +case class PullRequest( + userName: String, + repositoryName: String, + issueId: Int, + branch: String, + requestUserName: String, + requestRepositoryName: String, + requestBranch: String, + commitIdFrom: String, + commitIdTo: String +) diff --git a/src/main/scala/model/Repository.scala b/src/main/scala/model/Repository.scala index fe0df8a..5a888fc 100644 --- a/src/main/scala/model/Repository.scala +++ b/src/main/scala/model/Repository.scala @@ -21,19 +21,19 @@ def byPrimaryKey(owner: String, repository: String) = byRepository(owner, repository) } - - case class Repository( - userName: String, - repositoryName: String, - isPrivate: Boolean, - description: Option[String], - defaultBranch: String, - registeredDate: java.util.Date, - updatedDate: java.util.Date, - lastActivityDate: java.util.Date, - originUserName: Option[String], - originRepositoryName: Option[String], - parentUserName: Option[String], - parentRepositoryName: Option[String] - ) } + +case class Repository( + userName: String, + repositoryName: String, + isPrivate: Boolean, + description: Option[String], + defaultBranch: String, + registeredDate: java.util.Date, + updatedDate: java.util.Date, + lastActivityDate: java.util.Date, + originUserName: Option[String], + originRepositoryName: Option[String], + parentUserName: Option[String], + parentRepositoryName: Option[String] +) diff --git a/src/main/scala/model/SshKey.scala b/src/main/scala/model/SshKey.scala index 5106ab2..d1d0aab 100644 --- a/src/main/scala/model/SshKey.scala +++ b/src/main/scala/model/SshKey.scala @@ -14,11 +14,11 @@ def byPrimaryKey(userName: String, sshKeyId: Int) = (this.userName is userName.bind) && (this.sshKeyId is sshKeyId.bind) } - - case class SshKey( - userName: String, - sshKeyId: Int = 0, - title: String, - publicKey: String - ) } + +case class SshKey( + userName: String, + sshKeyId: Int = 0, + title: String, + publicKey: String +) diff --git a/src/main/scala/model/WebHook.scala b/src/main/scala/model/WebHook.scala index da7fb8f..8eb3719 100644 --- a/src/main/scala/model/WebHook.scala +++ b/src/main/scala/model/WebHook.scala @@ -11,10 +11,10 @@ def byPrimaryKey(owner: String, repository: String, url: String) = byRepository(owner, repository) && (this.url is url.bind) } - - case class WebHook( - userName: String, - repositoryName: String, - url: String - ) } + +case class WebHook( + userName: String, + repositoryName: String, + url: String +) diff --git a/src/main/scala/model/package.scala b/src/main/scala/model/package.scala index b806c33..c65e72e 100644 --- a/src/main/scala/model/package.scala +++ b/src/main/scala/model/package.scala @@ -1,21 +1,3 @@ -package object model extends Profile - with AccountComponent - with ActivityComponent - with CollaboratorComponent - with GroupMemberComponent - with IssueComponent - with IssueCommentComponent - with IssueLabelComponent - with LabelComponent - with MilestoneComponent - with PullRequestComponent - with RepositoryComponent - with SshKeyComponent - with WebHookComponent { - - /** - * Returns system date. - */ - def currentDate = new java.util.Date() - +package object model { + type Session = slick.jdbc.JdbcBackend#Session } diff --git a/src/main/scala/service/AccountService.scala b/src/main/scala/service/AccountService.scala index 71934f1..8f34dcb 100644 --- a/src/main/scala/service/AccountService.scala +++ b/src/main/scala/service/AccountService.scala @@ -1,9 +1,10 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.{Account, GroupMember} // TODO [Slick 2.0]NOT import directly? -import model.dateColumnType +import model.Profile.dateColumnType import service.SystemSettingsService.SystemSettings import util.StringUtil._ import util.LDAPUtil diff --git a/src/main/scala/service/ActivityService.scala b/src/main/scala/service/ActivityService.scala index d9219dc..127bae5 100644 --- a/src/main/scala/service/ActivityService.scala +++ b/src/main/scala/service/ActivityService.scala @@ -1,7 +1,8 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.Activity trait ActivityService { diff --git a/src/main/scala/service/IssuesService.scala b/src/main/scala/service/IssuesService.scala index 2c4a7fd..c123be9 100644 --- a/src/main/scala/service/IssuesService.scala +++ b/src/main/scala/service/IssuesService.scala @@ -3,8 +3,9 @@ import scala.slick.jdbc.{StaticQuery => Q} import Q.interpolation -import model._ +import model.Profile._ import profile.simple._ +import model.{Issue, IssueComment, IssueLabel, Label} import util.Implicits._ import util.StringUtil._ diff --git a/src/main/scala/service/LabelsService.scala b/src/main/scala/service/LabelsService.scala index 251e5fd..37c3d35 100644 --- a/src/main/scala/service/LabelsService.scala +++ b/src/main/scala/service/LabelsService.scala @@ -1,7 +1,8 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.Label trait LabelsService { diff --git a/src/main/scala/service/MilestonesService.scala b/src/main/scala/service/MilestonesService.scala index 2f73f22..e9b27be 100644 --- a/src/main/scala/service/MilestonesService.scala +++ b/src/main/scala/service/MilestonesService.scala @@ -1,9 +1,10 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.Milestone // TODO [Slick 2.0]NOT import directly? -import model.dateColumnType +import model.Profile.dateColumnType trait MilestonesService { diff --git a/src/main/scala/service/PullRequestService.scala b/src/main/scala/service/PullRequestService.scala index c91abe1..619f2fa 100644 --- a/src/main/scala/service/PullRequestService.scala +++ b/src/main/scala/service/PullRequestService.scala @@ -1,7 +1,8 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.{PullRequest, Issue} trait PullRequestService { self: IssuesService => import PullRequestService._ diff --git a/src/main/scala/service/RepositorySearchService.scala b/src/main/scala/service/RepositorySearchService.scala index 292507c..e31d6da 100644 --- a/src/main/scala/service/RepositorySearchService.scala +++ b/src/main/scala/service/RepositorySearchService.scala @@ -7,7 +7,7 @@ import org.eclipse.jgit.treewalk.TreeWalk import org.eclipse.jgit.lib.FileMode import org.eclipse.jgit.api.Git -import model._ +import model.Profile._ import profile.simple._ trait RepositorySearchService { self: IssuesService => @@ -107,7 +107,7 @@ case class SearchResult( files : List[(String, String)], - issues: List[(Issue, Int, String)]) + issues: List[(model.Issue, Int, String)]) case class IssueSearchResult( issueId: Int, diff --git a/src/main/scala/service/RepositoryService.scala b/src/main/scala/service/RepositoryService.scala index 5a9fec6..2adcca8 100644 --- a/src/main/scala/service/RepositoryService.scala +++ b/src/main/scala/service/RepositoryService.scala @@ -1,7 +1,8 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.{Repository, Account, Collaborator} import util.JGitUtil trait RepositoryService { self: AccountService => diff --git a/src/main/scala/service/RequestCache.scala b/src/main/scala/service/RequestCache.scala index 34c5ef3..4ff502b 100644 --- a/src/main/scala/service/RequestCache.scala +++ b/src/main/scala/service/RequestCache.scala @@ -1,7 +1,6 @@ package service -import model._ -import slick.jdbc.JdbcBackend +import model.{Account, Issue, Session} import util.Implicits.request2Session /** @@ -12,7 +11,7 @@ */ trait RequestCache extends SystemSettingsService with AccountService with IssuesService { - private implicit def context2Session(implicit context: app.Context): JdbcBackend#Session = + private implicit def context2Session(implicit context: app.Context): Session = request2Session(context.request) def getIssue(userName: String, repositoryName: String, issueId: String) diff --git a/src/main/scala/service/SshKeyService.scala b/src/main/scala/service/SshKeyService.scala index d38804a..7d5b9aa 100644 --- a/src/main/scala/service/SshKeyService.scala +++ b/src/main/scala/service/SshKeyService.scala @@ -1,7 +1,8 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.SshKey trait SshKeyService { diff --git a/src/main/scala/service/WebHookService.scala b/src/main/scala/service/WebHookService.scala index 9061a07..9f3f11e 100644 --- a/src/main/scala/service/WebHookService.scala +++ b/src/main/scala/service/WebHookService.scala @@ -1,7 +1,8 @@ package service -import model._ +import model.Profile._ import profile.simple._ +import model.{WebHook, Account} import org.slf4j.LoggerFactory import service.RepositoryService.RepositoryInfo import util.JGitUtil diff --git a/src/main/scala/servlet/BasicAuthenticationFilter.scala b/src/main/scala/servlet/BasicAuthenticationFilter.scala index 64d85ad..8272c7a 100644 --- a/src/main/scala/servlet/BasicAuthenticationFilter.scala +++ b/src/main/scala/servlet/BasicAuthenticationFilter.scala @@ -5,7 +5,6 @@ import service.{SystemSettingsService, AccountService, RepositoryService} import model._ import org.slf4j.LoggerFactory -import slick.jdbc.JdbcBackend import util.Implicits._ import util.ControlUtil._ import util.Keys @@ -67,7 +66,7 @@ } private def getWritableUser(username: String, password: String, repository: RepositoryService.RepositoryInfo) - (implicit session: JdbcBackend#Session): Option[Account] = + (implicit session: Session): Option[Account] = authenticate(loadSystemSettings(), username, password) match { case x @ Some(account) if(hasWritePermission(repository.owner, repository.name, x)) => x case _ => None diff --git a/src/main/scala/servlet/GitRepositoryServlet.scala b/src/main/scala/servlet/GitRepositoryServlet.scala index 0b19858..bf99ba0 100644 --- a/src/main/scala/servlet/GitRepositoryServlet.scala +++ b/src/main/scala/servlet/GitRepositoryServlet.scala @@ -17,7 +17,7 @@ import org.eclipse.jgit.api.Git import util.JGitUtil.CommitInfo import service.IssuesService.IssueSearchCondition -import slick.jdbc.JdbcBackend +import model.Session /** * Provides Git repository via HTTP. @@ -95,7 +95,7 @@ import scala.collection.JavaConverters._ -class CommitLogHook(owner: String, repository: String, pusher: String, baseUrl: String)(implicit session: JdbcBackend#Session) +class CommitLogHook(owner: String, repository: String, pusher: String, baseUrl: String)(implicit session: Session) extends PostReceiveHook with PreReceiveHook with RepositoryService with AccountService with IssuesService with ActivityService with PullRequestService with WebHookService { diff --git a/src/main/scala/servlet/PluginActionInvokeFilter.scala b/src/main/scala/servlet/PluginActionInvokeFilter.scala index 6a35121..eb28fea 100644 --- a/src/main/scala/servlet/PluginActionInvokeFilter.scala +++ b/src/main/scala/servlet/PluginActionInvokeFilter.scala @@ -5,7 +5,7 @@ import org.apache.commons.io.IOUtils import twirl.api.Html import service.{AccountService, RepositoryService, SystemSettingsService} -import model.Account +import model.{Account, Session} import util.{JGitUtil, Keys} import plugin.PluginConnectionHolder @@ -50,7 +50,7 @@ } private def processRepositoryAction(path: String, request: HttpServletRequest, response: HttpServletResponse) - (implicit session: model.profile.simple.Session): Boolean = { + (implicit session: Session): Boolean = { val elements = path.split("/") if(elements.length > 3){ val owner = elements(1) diff --git a/src/main/scala/ssh/GitCommand.scala b/src/main/scala/ssh/GitCommand.scala index eeb269e..d1d4233 100644 --- a/src/main/scala/ssh/GitCommand.scala +++ b/src/main/scala/ssh/GitCommand.scala @@ -12,7 +12,7 @@ import service.{AccountService, RepositoryService, SystemSettingsService} import org.eclipse.jgit.errors.RepositoryNotFoundException import javax.servlet.ServletContext -import model.profile.simple.Session +import model.Session object GitCommand { val CommandRegex = """\Agit-(upload|receive)-pack '/([a-zA-Z0-9\-_.]+)/([a-zA-Z0-9\-_.]+).git'\Z""".r diff --git a/src/main/scala/util/Notifier.scala b/src/main/scala/util/Notifier.scala index afc65aa..ae6e25c 100644 --- a/src/main/scala/util/Notifier.scala +++ b/src/main/scala/util/Notifier.scala @@ -6,11 +6,11 @@ import org.slf4j.LoggerFactory import app.Context +import model.Session import service.{AccountService, RepositoryService, IssuesService, SystemSettingsService} import servlet.Database import SystemSettingsService.Smtp import _root_.util.ControlUtil.defining -import model.profile.simple.Session trait Notifier extends RepositoryService with AccountService with IssuesService { def toNotify(r: RepositoryService.RepositoryInfo, issueId: Int, content: String)