Skip to content

Commit

Permalink
allow to add labels to shares
Browse files Browse the repository at this point in the history
Signed-off-by: Bjoern Schiessle <[email protected]>
  • Loading branch information
schiessle authored and danxuliu committed Nov 1, 2018
1 parent d0411b2 commit f377a61
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 7 deletions.
18 changes: 13 additions & 5 deletions apps/files_sharing/lib/Controller/ShareAPIController.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ protected function formatShare(\OCP\Share\IShare $share, Node $recipientNode = n
'token' => null,
'uid_file_owner' => $share->getShareOwner(),
'note' => $share->getNote(),
'label' => $share->getLabel(),
'displayname_file_owner' => $shareOwner !== null ? $shareOwner->getDisplayName() : $share->getShareOwner(),
];

Expand Down Expand Up @@ -354,15 +355,17 @@ public function deleteShare(string $id): DataResponse {
* @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(
Expand All @@ -373,7 +376,8 @@ public function createShare(
string $publicUpload = 'false',
string $password = '',
string $sendPasswordByTalk = null,
string $expireDate = ''
string $expireDate = '',
string $label = ''
): DataResponse {
$share = $this->shareManager->newShare();

Expand Down Expand Up @@ -473,6 +477,10 @@ public function createShare(
$share->setPassword($password);
}

if (!empty($label)) {
$share->setLabel($label);
}

//Expire date
if ($expireDate !== '') {
try {
Expand Down
53 changes: 53 additions & 0 deletions core/Migrations/Version15000Date20181029084625.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2018, John Molakvoæ ([email protected])
*
* @author John Molakvoæ (skjnldsv) <[email protected]>
*
* @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;
}

}
1 change: 1 addition & 0 deletions lib/composer/composer/autoload_classmap.php
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,7 @@
'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',
Expand Down
1 change: 1 addition & 0 deletions lib/composer/composer/autoload_static.php
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'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',
Expand Down
8 changes: 7 additions & 1 deletion lib/private/Share20/DefaultShareProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ public function create(\OCP\Share\IShare $share) {
//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()));

Expand Down Expand Up @@ -225,6 +227,9 @@ public function create(\OCP\Share\IShare $share) {
*
* @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) {

Expand Down Expand Up @@ -919,7 +924,8 @@ private function createShare($data) {
->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']);
Expand Down
17 changes: 17 additions & 0 deletions lib/private/Share20/Share.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ class Share implements \OCP\Share\IShare {
private $shareTime;
/** @var bool */
private $mailSend;
/** @var string */
private $label = '';

/** @var IRootFolder */
private $rootFolder;
Expand Down Expand Up @@ -334,6 +336,21 @@ public function getNote() {
return '';
}

/**
* @inheritdoc
*/
public function setLabel($label) {
$this->label = $label;
return $this;
}

/**
* @inheritdoc
*/
public function getLabel() {
return $this->label;
}

/**
* @inheritdoc
*/
Expand Down
17 changes: 17 additions & 0 deletions lib/public/Share/IShare.php
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,23 @@ public function setExpirationDate($expireDate);
*/
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.
*
Expand Down
2 changes: 1 addition & 1 deletion version.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
// 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';
Expand Down

0 comments on commit f377a61

Please sign in to comment.