'token' => null,
'uid_file_owner' => $share->getShareOwner(),
'note' => $share->getNote(),
+ 'label' => $share->getLabel(),
'displayname_file_owner' => $shareOwner !== null ? $shareOwner->getDisplayName() : $share->getShareOwner(),
];
* @param string $shareWith
* @param string $publicUpload
* @param string $password
- * @param bool $sendPasswordByTalk
+ * @param string $sendPasswordByTalk
* @param string $expireDate
+ * @param string $label
*
* @return DataResponse
- * @throws OCSNotFoundException
- * @throws OCSForbiddenException
+ * @throws NotFoundException
* @throws OCSBadRequestException
* @throws OCSException
- *
+ * @throws OCSForbiddenException
+ * @throws OCSNotFoundException
+ * @throws \OCP\Files\InvalidPathException
* @suppress PhanUndeclaredClassMethod
*/
public function createShare(
string $publicUpload = 'false',
string $password = '',
string $sendPasswordByTalk = null,
- string $expireDate = ''
+ string $expireDate = '',
+ string $label = ''
): DataResponse {
$share = $this->shareManager->newShare();
$share->setPassword($password);
}
+ if (!empty($label)) {
+ $share->setLabel($label);
+ }
+
//Expire date
if ($expireDate !== '') {
try {
--- /dev/null
+<?php
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\SimpleMigrationStep;
+use OCP\Migration\IOutput;
+
+class Version15000Date20181029084625 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('share');
+ $table->addColumn('label', 'string', [
+ 'notnull' => false,
+ 'length' => 255,
+ ]);
+
+ return $schema;
+ }
+
+}
'OC\\Core\\Migrations\\Version14000Date20180712153140' => $baseDir . '/core/Migrations/Version14000Date20180712153140.php',
'OC\\Core\\Migrations\\Version15000Date20180926101451' => $baseDir . '/core/Migrations/Version15000Date20180926101451.php',
'OC\\Core\\Migrations\\Version15000Date20181015062942' => $baseDir . '/core/Migrations/Version15000Date20181015062942.php',
+ 'OC\\Core\\Migrations\\Version15000Date20181029084625' => $baseDir . '/core/Migrations/Version15000Date20181029084625.php',
'OC\\DB\\Adapter' => $baseDir . '/lib/private/DB/Adapter.php',
'OC\\DB\\AdapterMySQL' => $baseDir . '/lib/private/DB/AdapterMySQL.php',
'OC\\DB\\AdapterOCI8' => $baseDir . '/lib/private/DB/AdapterOCI8.php',
'OC\\Core\\Migrations\\Version14000Date20180712153140' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180712153140.php',
'OC\\Core\\Migrations\\Version15000Date20180926101451' => __DIR__ . '/../../..' . '/core/Migrations/Version15000Date20180926101451.php',
'OC\\Core\\Migrations\\Version15000Date20181015062942' => __DIR__ . '/../../..' . '/core/Migrations/Version15000Date20181015062942.php',
+ 'OC\\Core\\Migrations\\Version15000Date20181029084625' => __DIR__ . '/../../..' . '/core/Migrations/Version15000Date20181029084625.php',
'OC\\DB\\Adapter' => __DIR__ . '/../../..' . '/lib/private/DB/Adapter.php',
'OC\\DB\\AdapterMySQL' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterMySQL.php',
'OC\\DB\\AdapterOCI8' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterOCI8.php',
//Set the GID of the group we share with
$qb->setValue('share_with', $qb->createNamedParameter($share->getSharedWith()));
} else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_LINK) {
+ //set label for public link
+ $qb->setValue('label', $qb->createNamedParameter($share->getLabel()));
//Set the token of the share
$qb->setValue('token', $qb->createNamedParameter($share->getToken()));
*
* @param \OCP\Share\IShare $share
* @return \OCP\Share\IShare The share object
+ * @throws ShareNotFound
+ * @throws \OCP\Files\InvalidPathException
+ * @throws \OCP\Files\NotFoundException
*/
public function update(\OCP\Share\IShare $share) {
->setPermissions((int)$data['permissions'])
->setTarget($data['file_target'])
->setNote($data['note'])
- ->setMailSend((bool)$data['mail_send']);
+ ->setMailSend((bool)$data['mail_send'])
+ ->setLabel($data['label']);
$shareTime = new \DateTime();
$shareTime->setTimestamp((int)$data['stime']);
private $shareTime;
/** @var bool */
private $mailSend;
+ /** @var string */
+ private $label = '';
/** @var IRootFolder */
private $rootFolder;
return '';
}
+ /**
+ * @inheritdoc
+ */
+ public function setLabel($label) {
+ $this->label = $label;
+ return $this;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getLabel() {
+ return $this->label;
+ }
+
/**
* @inheritdoc
*/
*/
public function getExpirationDate();
+ /**
+ * set a label for a share, some shares, e.g. public links can have a label
+ *
+ * @param string $label
+ * @return \OCP\Share\IShare The modified object
+ * @since 15.0.0
+ */
+ public function setLabel($label);
+
+ /**
+ * get label for the share, some shares, e.g. public links can have a label
+ *
+ * @return string
+ * @since 15.0.0
+ */
+ public function getLabel();
+
/**
* Set the sharer of the path.
*
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
// when updating major/minor version number.
-$OC_Version = array(15, 0, 0, 2);
+$OC_Version = array(15, 0, 0, 3);
// The human readable string
$OC_VersionString = '15.0.0 alpha';