From bc960bae028650d6bfeed4591bf49c8641dd149d Mon Sep 17 00:00:00 2001
From: Roeland Jago Douma <roeland@famdouma.nl>
Date: Mon, 15 Oct 2018 08:47:07 +0200
Subject: [PATCH] Extend IShare to show hide download state

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
---
 lib/private/Share20/Share.php | 13 +++++++++++++
 lib/public/Share/IShare.php   | 21 +++++++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/lib/private/Share20/Share.php b/lib/private/Share20/Share.php
index 71c0453d9e5..e218360f87b 100644
--- a/lib/private/Share20/Share.php
+++ b/lib/private/Share20/Share.php
@@ -30,6 +30,7 @@ use OCP\Files\Node;
 use OCP\Files\NotFoundException;
 use OCP\IUserManager;
 use OCP\Share\Exceptions\IllegalIDChangeException;
+use OCP\Share\IShare;
 
 class Share implements \OCP\Share\IShare {
 
@@ -85,6 +86,9 @@ class Share implements \OCP\Share\IShare {
 	/** @var ICacheEntry|null */
 	private $nodeCacheEntry;
 
+	/** @var bool */
+	private $hideDownload = false;
+
 	public function __construct(IRootFolder $rootFolder, IUserManager $userManager) {
 		$this->rootFolder = $rootFolder;
 		$this->userManager = $userManager;
@@ -514,4 +518,13 @@ class Share implements \OCP\Share\IShare {
 	public function getNodeCacheEntry() {
 		return $this->nodeCacheEntry;
 	}
+
+	public function setHideDownload(bool $hide): IShare {
+		$this->hideDownload = $hide;
+		return $this;
+	}
+
+	public function getHideDownload(): bool {
+		return $this->hideDownload;
+	}
 }
diff --git a/lib/public/Share/IShare.php b/lib/public/Share/IShare.php
index 43543fdad47..dcd5fdecbea 100644
--- a/lib/public/Share/IShare.php
+++ b/lib/public/Share/IShare.php
@@ -418,4 +418,25 @@ interface IShare {
 	 * @since 11.0.0
 	 */
 	public function getNodeCacheEntry();
+
+	/**
+	 * Sets a shares hide download state
+	 * This is mainly for public shares. It will signal that the share page should
+	 * hide download buttons etc.
+	 *
+	 * @param bool $ro
+	 * @return IShare
+	 * @since 15.0.0
+	 */
+	public function setHideDownload(bool $hide): IShare;
+
+	/**
+	 * Gets a shares hide download state
+	 * This is mainly for public shares. It will signal that the share page should
+	 * hide download buttons etc.
+	 *
+	 * @return bool
+	 * @since 15.0.0
+	 */
+	public function getHideDownload(): bool;
 }
-- 
GitLab