Skip to content

Commit

Permalink
Merge pull request #474 from SpongePowered/feature/account-for-visbil…
Browse files Browse the repository at this point in the history
…ity-in-download-and-stars

Account for visbility in download and stars
  • Loading branch information
phase authored Mar 4, 2018
2 parents 7239cd3 + b95ce3b commit 0db8c43
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
6 changes: 6 additions & 0 deletions app/controllers/project/Versions.scala
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,9 @@ class Versions @Inject()(stats: StatTracker,
token: Option[String],
api: Boolean = false)
(implicit request: ProjectRequest[_]): Result = {
if (project.visibility == VisibilityTypes.SoftDelete) {
return notFound
}
if (!checkConfirmation(project, version, token))
Redirect(self.showDownloadConfirm(
project.ownerName, project.slug, version.name, Some(JarFile.id), api = Some(api)))
Expand Down Expand Up @@ -720,6 +723,9 @@ class Versions @Inject()(stats: StatTracker,

private def sendSignatureFile(version: Version)(implicit request: Request[_]): Result = {
val project = version.project
if (project.visibility == VisibilityTypes.SoftDelete) {
return notFound
}
val path = this.fileManager.getVersionDir(project.ownerName, project.name, version.name).resolve(version.signatureFileName)
if (notExists(path)) {
Logger.warn("project version missing signature file")
Expand Down
7 changes: 4 additions & 3 deletions app/models/user/User.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ package models.user
import java.sql.Timestamp

import com.google.common.base.Preconditions._
import db.Named
import db.{ModelFilter, Named}
import db.access.ModelAccess
import db.impl.OrePostgresDriver.api._
import db.impl._
import db.impl.access.{OrganizationBase, UserBase}
import db.impl.model.OreModel
import db.impl.table.ModelKeys._
import models.project.{Flag, Project, Version}
import models.project.{Flag, Project, Version, VisibilityTypes}
import models.user.role.{OrganizationRole, ProjectRole}
import ore.{OreConfig, Visitable}
import ore.permission._
Expand Down Expand Up @@ -321,8 +321,9 @@ case class User(override val id: Option[Int] = None,
val starsPerPage = this.config.users.getInt("stars-per-page").get
val limit = if (page < 1) -1 else starsPerPage
val offset = (page - 1) * starsPerPage
val filter = ModelFilter[Project](_.visibility === VisibilityTypes.Public) +|| ModelFilter[Project](_.visibility === VisibilityTypes.New)
this.schema.getAssociation[ProjectStarsTable, Project](classOf[ProjectStarsTable], this)
.sorted(ordering = _.name, limit = limit, offset = offset)
.sorted(ordering = _.name, filter = filter.fn, limit = limit, offset = offset)
}

/**
Expand Down
18 changes: 11 additions & 7 deletions app/views/projects/view.scala.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
@canAdminNotes = @{ hasUser && (user can ReviewFlags in GlobalScope) }
@canAdminLog = @{ hasUser && (user can ViewLogs in GlobalScope) }
@canEditPages = @{ hasUser && (user can EditPages in project) }
@isDeleted = @{ project.visibility == VisibilityTypes.SoftDelete }

@bootstrap.layout(project.ownerName + " / " + project.name) {

Expand Down Expand Up @@ -159,7 +160,7 @@ <h1>
</span>
}

@if(hasUser) {
@if(hasUser && !isDeleted) {

<script nonce="@nonce">
var projectOwner = "@project.ownerName";
Expand Down Expand Up @@ -195,7 +196,8 @@ <h1>

<!-- Flag button -->
@if(hasUser && !user.username.equals(project.ownerName)
&& !user.hasUnresolvedFlagFor(project)) {
&& !user.hasUnresolvedFlagFor(project)
&& !isDeleted) {
<button data-toggle="modal" data-target="#modal-flag" class="btn btn-default">
<i class="fa fa-flag"></i> @messages("project.flag")
</button>
Expand Down Expand Up @@ -242,11 +244,13 @@ <h4 class="modal-title" id="label-flag">Flag project</h4>
}

<!-- Download button -->
<a href="@versionRoutes.downloadRecommended(project.ownerName, project.slug, None)"
title="@messages("project.download.recommend")" data-toggle="tooltip"
data-placement="bottom" class="btn btn-primary">
<i class="fa fa-download"></i> @messages("general.download")
</a>
@if(!isDeleted) {
<a href="@versionRoutes.downloadRecommended(project.ownerName, project.slug, None)"
title="@messages("project.download.recommend")" data-toggle="tooltip"
data-placement="bottom" class="btn btn-primary">
<i class="fa fa-download"></i> @messages("general.download")
</a>
}

@if(hasUser && (canAdminFlag || canAdminNotes || canAdminLog)) {
<button class="btn btn-alert dropdown-toggle" type="button" id="admin-actions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Expand Down

0 comments on commit 0db8c43

Please sign in to comment.