Passed
Pull Request — master (#77)
by
unknown
03:30
created
src/Extensions/ShareDraftContentRequirementsExtension.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -7,9 +7,9 @@
 block discarded – undo
7 7
 
8 8
 class ShareDraftContentRequirementsExtension extends DataExtension
9 9
 {
10
-    public function init()
11
-    {
12
-        Requirements::css('silverstripe/sharedraftcontent: client/dist/styles/share-component.css');
13
-        Requirements::javascript('silverstripe/sharedraftcontent: client/dist/js/main.js');
14
-    }
10
+	public function init()
11
+	{
12
+		Requirements::css('silverstripe/sharedraftcontent: client/dist/styles/share-component.css');
13
+		Requirements::javascript('silverstripe/sharedraftcontent: client/dist/js/main.js');
14
+	}
15 15
 }
Please login to merge, or discard this patch.
src/Controllers/ShareDraftController.php 1 patch
Indentation   +121 added lines, -121 removed lines patch added patch discarded remove patch
@@ -18,125 +18,125 @@
 block discarded – undo
18 18
 
19 19
 class ShareDraftController extends Controller
20 20
 {
21
-    /**
22
-     * Controller for rendering draft pages.
23
-     *
24
-     * @config
25
-     *
26
-     * @var string
27
-     */
28
-    private static $controller = PageController::class;
29
-
30
-    /**
31
-     * @var array
32
-     */
33
-    private static $allowed_actions = array(
34
-        'preview'
35
-    );
36
-
37
-    /**
38
-     * @var array
39
-     */
40
-    private static $url_handlers = array(
41
-        '$Key/$Token' => 'preview'
42
-    );
43
-
44
-    /**
45
-     * @param HTTPRequest $request
46
-     *
47
-     * @return string|HTMLText
48
-     */
49
-    public function preview(HTTPRequest $request)
50
-    {
51
-        $key = $request->param('Key');
52
-        $token = $request->param('Token');
53
-        try {
54
-            $session = $this->getRequest()->getSession();
55
-        } catch (BadMethodCallException $e) {
56
-            // Create a new session
57
-            $session = $this->getRequest()
58
-                ->setSession(Injector::inst()->create(Session::class, []))
59
-                ->getSession();
60
-        }
61
-        /**
62
-         * @var ShareToken $shareToken
63
-         */
64
-        $shareToken = ShareToken::get()->filter('Token', $token)->first();
65
-
66
-        if (!$shareToken) {
67
-            return $this->errorPage();
68
-        }
69
-
70
-        $page = Versioned::get_one_by_stage(
71
-            SiteTree::class,
72
-            'Stage',
73
-            sprintf('"SiteTree"."ID" = \'%d\'', $shareToken->PageID)
74
-        );
75
-
76
-        $latest = Versioned::get_latest_version(SiteTree::class, $shareToken->PageID);
77
-
78
-        $controller = $this->getControllerFor($page);
79
-
80
-        if (!$shareToken->isExpired() && $page->generateKey($shareToken->Token) === $key) {
81
-            Requirements::css('silverstripe/sharedraftcontent: client/dist/styles/top-bar.css');
82
-
83
-            // Temporarily un-secure the draft site and switch to draft
84
-            $oldSecured = $session->get('unsecuredDraftSite');
85
-            $oldMode = Versioned::get_reading_mode();
86
-            $restore = function () use ($oldSecured, $oldMode, $session) {
87
-                $session->set('unsecuredDraftSite', $oldSecured);
88
-                Versioned::set_reading_mode($oldMode);
89
-            };
90
-
91
-            // Process page inside an unsecured draft container
92
-            try {
93
-                $session->set('unsecuredDraftSite', true);
94
-                Versioned::set_stage('Stage');
95
-
96
-                // Hack to get around ContentController::init() redirecting on home page
97
-                $_FILES = array(array());
98
-
99
-                // Create mock request; Simplify request to single top level request
100
-                $pageRequest = new HTTPRequest('GET', $page->URLSegment);
101
-                $pageRequest->match('$URLSegment//$Action/$ID/$OtherID', true);
102
-                $pageRequest->setSession($session);
103
-                $rendered = $controller->handleRequest($pageRequest, $this->model);
104
-
105
-                // Render draft heading
106
-                $data = new ArrayData(array(
107
-                    'Page' => $page,
108
-                    'Latest' => $latest,
109
-                ));
110
-                $include = (string) $data->renderWith('Includes/TopBar');
111
-            } catch (Exception $ex) {
112
-                $restore();
113
-                throw $ex;
114
-            }
115
-            $restore();
116
-
117
-            return str_replace('</body>', $include . '</body>', (string) $rendered->getBody());
118
-        } else {
119
-            return $this->errorPage();
120
-        }
121
-    }
122
-
123
-    /**
124
-     * @return HTMLText
125
-     */
126
-    protected function errorPage()
127
-    {
128
-        Requirements::css('silverstripe/sharedraftcontent: client/dist/styles/error-page.css');
129
-
130
-        return $this->renderWith('ShareDraftContentError');
131
-    }
132
-
133
-    /**
134
-     * @param mixed $page
135
-     *
136
-     * @return mixed
137
-     */
138
-    protected function getControllerFor($page)
139
-    {
140
-        return ModelAsController::controller_for($page);
141
-    }
21
+	/**
22
+	 * Controller for rendering draft pages.
23
+	 *
24
+	 * @config
25
+	 *
26
+	 * @var string
27
+	 */
28
+	private static $controller = PageController::class;
29
+
30
+	/**
31
+	 * @var array
32
+	 */
33
+	private static $allowed_actions = array(
34
+		'preview'
35
+	);
36
+
37
+	/**
38
+	 * @var array
39
+	 */
40
+	private static $url_handlers = array(
41
+		'$Key/$Token' => 'preview'
42
+	);
43
+
44
+	/**
45
+	 * @param HTTPRequest $request
46
+	 *
47
+	 * @return string|HTMLText
48
+	 */
49
+	public function preview(HTTPRequest $request)
50
+	{
51
+		$key = $request->param('Key');
52
+		$token = $request->param('Token');
53
+		try {
54
+			$session = $this->getRequest()->getSession();
55
+		} catch (BadMethodCallException $e) {
56
+			// Create a new session
57
+			$session = $this->getRequest()
58
+				->setSession(Injector::inst()->create(Session::class, []))
59
+				->getSession();
60
+		}
61
+		/**
62
+		 * @var ShareToken $shareToken
63
+		 */
64
+		$shareToken = ShareToken::get()->filter('Token', $token)->first();
65
+
66
+		if (!$shareToken) {
67
+			return $this->errorPage();
68
+		}
69
+
70
+		$page = Versioned::get_one_by_stage(
71
+			SiteTree::class,
72
+			'Stage',
73
+			sprintf('"SiteTree"."ID" = \'%d\'', $shareToken->PageID)
74
+		);
75
+
76
+		$latest = Versioned::get_latest_version(SiteTree::class, $shareToken->PageID);
77
+
78
+		$controller = $this->getControllerFor($page);
79
+
80
+		if (!$shareToken->isExpired() && $page->generateKey($shareToken->Token) === $key) {
81
+			Requirements::css('silverstripe/sharedraftcontent: client/dist/styles/top-bar.css');
82
+
83
+			// Temporarily un-secure the draft site and switch to draft
84
+			$oldSecured = $session->get('unsecuredDraftSite');
85
+			$oldMode = Versioned::get_reading_mode();
86
+			$restore = function () use ($oldSecured, $oldMode, $session) {
87
+				$session->set('unsecuredDraftSite', $oldSecured);
88
+				Versioned::set_reading_mode($oldMode);
89
+			};
90
+
91
+			// Process page inside an unsecured draft container
92
+			try {
93
+				$session->set('unsecuredDraftSite', true);
94
+				Versioned::set_stage('Stage');
95
+
96
+				// Hack to get around ContentController::init() redirecting on home page
97
+				$_FILES = array(array());
98
+
99
+				// Create mock request; Simplify request to single top level request
100
+				$pageRequest = new HTTPRequest('GET', $page->URLSegment);
101
+				$pageRequest->match('$URLSegment//$Action/$ID/$OtherID', true);
102
+				$pageRequest->setSession($session);
103
+				$rendered = $controller->handleRequest($pageRequest, $this->model);
104
+
105
+				// Render draft heading
106
+				$data = new ArrayData(array(
107
+					'Page' => $page,
108
+					'Latest' => $latest,
109
+				));
110
+				$include = (string) $data->renderWith('Includes/TopBar');
111
+			} catch (Exception $ex) {
112
+				$restore();
113
+				throw $ex;
114
+			}
115
+			$restore();
116
+
117
+			return str_replace('</body>', $include . '</body>', (string) $rendered->getBody());
118
+		} else {
119
+			return $this->errorPage();
120
+		}
121
+	}
122
+
123
+	/**
124
+	 * @return HTMLText
125
+	 */
126
+	protected function errorPage()
127
+	{
128
+		Requirements::css('silverstripe/sharedraftcontent: client/dist/styles/error-page.css');
129
+
130
+		return $this->renderWith('ShareDraftContentError');
131
+	}
132
+
133
+	/**
134
+	 * @param mixed $page
135
+	 *
136
+	 * @return mixed
137
+	 */
138
+	protected function getControllerFor($page)
139
+	{
140
+		return ModelAsController::controller_for($page);
141
+	}
142 142
 }
Please login to merge, or discard this patch.