Skip to content

Commit b501926

Browse files
committed
Merge branch '3' into 4.0
# Conflicts: # yarn.lock
2 parents 8a893c8 + 5de30ec commit b501926

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

src/Extensions/ShareDraftContentControllerExtension.php

+18-5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use SilverStripe\Control\Controller;
66
use SilverStripe\Core\Extension;
7+
use SilverStripe\Security\Member;
78
use SilverStripe\Security\Security;
89

910
/**
@@ -24,17 +25,29 @@ class ShareDraftContentControllerExtension extends Extension
2425
public function MakeShareDraftLink()
2526
{
2627
if ($member = Security::getCurrentUser()) {
27-
if ($this->owner->hasMethod('CurrentPage') && $this->owner->CurrentPage()->canView($member)) {
28-
return $this->owner->CurrentPage()->ShareTokenLink();
29-
}
30-
if ($this->owner->hasMethod('canView') && $this->owner->canView($member)) {
31-
return $this->owner->ShareTokenLink();
28+
if ($this->owner->hasMethod('currentRecord')) {
29+
$link = $this->getShareTokenLink($this->owner->currentRecord(), $member);
30+
} elseif ($this->owner->hasMethod('CurrentPage')) {
31+
// Could be a non-LeftAndMain controller, since the extension is applied directly to Controller
32+
$link = $this->getShareTokenLink($this->owner->CurrentPage(), $member);
3233
}
34+
$link ??= $this->getShareTokenLink($this->owner, $member);
35+
}
36+
if ($link) {
37+
return $link;
3338
}
3439

3540
return Security::permissionFailure();
3641
}
3742

43+
private function getShareTokenLink(object $record, Member $member): ?string
44+
{
45+
if ($record->hasMethod('canView') && $record->canView($member)) {
46+
return $record->ShareTokenLink();
47+
}
48+
return null;
49+
}
50+
3851
/**
3952
* @return string
4053
*/

templates/SilverStripe/Admin/Includes/LeftAndMain_ViewModeSelector.ss

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<%-- Placeholder is re-rendered by the ShareDraftContent React component --%>
33
<span class="share-draft-content__placeholder"
44
data-url="<% if $CurrentPage.ShareDraftLinkAction %>{$CurrentPage.ShareDraftLinkAction}<% else %>{$Controller.CurrentPage.ShareDraftLinkAction}<% end_if %>"
5-
data-helpurl="https://userhelp.silverstripe.org/en/4/optional_features/share_draft_content"
5+
data-helpurl="https://userhelp.silverstripe.org/en/optional_features/share_draft_content"
66
>
77
</span>
88

yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -2177,9 +2177,9 @@ cosmiconfig@^9.0.0:
21772177
parse-json "^5.2.0"
21782178

21792179
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
2180-
version "7.0.5"
2181-
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82"
2182-
integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==
2180+
version "7.0.6"
2181+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
2182+
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
21832183
dependencies:
21842184
path-key "^3.1.0"
21852185
shebang-command "^2.0.0"

0 commit comments

Comments
 (0)