Skip to content

Commit b6013cc

Browse files
Merge pull request #62599 from nextcloud/feat/sharing/enforced-hints
Add hints for password and expiration date if they are required
2 parents 15486dd + 5bbf52e commit b6013cc

13 files changed

Lines changed: 31 additions & 14 deletions

‎apps/files/lib/Sharing/Property/NodeGridViewSharePropertyType.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function getDisplayName(IFactory $l10nFactory): string {
2121
}
2222

2323
#[\Override]
24-
public function getHint(IFactory $l10nFactory): ?string {
24+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
2525
return null;
2626
}
2727

‎core/Sharing/Property/ExpirationDateSharePropertyType.php‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,11 @@ public function getDisplayName(IFactory $l10nFactory): string {
3939
}
4040

4141
#[\Override]
42-
public function getHint(IFactory $l10nFactory): ?string {
42+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
43+
if ($this->isRequired($share)) {
44+
return $l10nFactory->get(Application::APP_ID)->t('Your administrator has enforced a %d days expiration policy.', [$this->getMaxExpirationDays($share)]);
45+
}
46+
4347
return null;
4448
}
4549

@@ -87,7 +91,7 @@ public function getMaxDate(Share $share): ?DateTimeImmutable {
8791
return null;
8892
}
8993

90-
private function getMaxExpirationDate(Share $share): ?DateTimeImmutable {
94+
private function getMaxExpirationDays(Share $share): ?int {
9195
$days = INF;
9296

9397
if ($this->hasTokenOrEmailRecipient($share) && $this->legacyManager->shareApiLinkDefaultExpireDate()) {
@@ -103,6 +107,15 @@ private function getMaxExpirationDate(Share $share): ?DateTimeImmutable {
103107
}
104108

105109
if ($days !== INF) {
110+
return $days;
111+
}
112+
113+
return null;
114+
}
115+
116+
private function getMaxExpirationDate(Share $share): ?DateTimeImmutable {
117+
$days = $this->getMaxExpirationDays($share);
118+
if ($days !== null) {
106119
return $this->now->add(new DateInterval('P' . $days . 'D'));
107120
}
108121

‎core/Sharing/Property/LabelSharePropertyType.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function getDisplayName(IFactory $l10nFactory): string {
2121
}
2222

2323
#[\Override]
24-
public function getHint(IFactory $l10nFactory): ?string {
24+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
2525
return null;
2626
}
2727

‎core/Sharing/Property/NoteSharePropertyType.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function getDisplayName(IFactory $l10nFactory): string {
2121
}
2222

2323
#[\Override]
24-
public function getHint(IFactory $l10nFactory): ?string {
24+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
2525
return null;
2626
}
2727

‎core/Sharing/Property/PasswordSharePropertyType.php‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ public function getDisplayName(IFactory $l10nFactory): string {
4141
}
4242

4343
#[\Override]
44-
public function getHint(IFactory $l10nFactory): ?string {
44+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
45+
if ($this->isRequired($share)) {
46+
return $l10nFactory->get(Application::APP_ID)->t('Your administrator has enforced a password protection.');
47+
}
48+
4549
return null;
4650
}
4751

‎lib/public/Sharing/Property/ISharePropertyType.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function getDisplayName(IFactory $l10nFactory): string;
4343
* @return ?non-empty-string
4444
* @since 35.0.0
4545
*/
46-
public function getHint(IFactory $l10nFactory): ?string;
46+
public function getHint(IFactory $l10nFactory, Share $share): ?string;
4747

4848
/**
4949
* Returns a priority used for sorting the properties for the user interface.

‎lib/public/Sharing/Property/ShareProperty.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function format(ISharingRegistry $registry, IFactory $l10nFactory, Share
4747
return $propertyType->format($share, [
4848
'class' => $this->class,
4949
'display_name' => $propertyType->getDisplayName($l10nFactory),
50-
'hint' => $propertyType->getHint($l10nFactory),
50+
'hint' => $propertyType->getHint($l10nFactory, $share),
5151
'priority' => $propertyType->getPriority(),
5252
'advanced' => $propertyType->isAdvanced(),
5353
'required' => $propertyType->isRequired($share),

‎tests/lib/Sharing/Property/ABooleanSharePropertyTypeTest.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function getDisplayName(IFactory $l10nFactory): string {
2424
}
2525

2626
#[\Override]
27-
public function getHint(IFactory $l10nFactory): ?string {
27+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
2828
throw new \RuntimeException();
2929
}
3030

‎tests/lib/Sharing/Property/ADateSharePropertyTypeTest.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function getDisplayName(IFactory $l10nFactory): string {
4343
}
4444

4545
#[\Override]
46-
public function getHint(IFactory $l10nFactory): ?string {
46+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
4747
throw new \RuntimeException();
4848
}
4949

‎tests/lib/Sharing/Property/AEnumSharePropertyTypeTest.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public function getDisplayName(IFactory $l10nFactory): string {
3838
}
3939

4040
#[\Override]
41-
public function getHint(IFactory $l10nFactory): ?string {
41+
public function getHint(IFactory $l10nFactory, Share $share): ?string {
4242
throw new \RuntimeException();
4343
}
4444

0 commit comments

Comments
 (0)