11<?php
22
3+ declare (strict_types=1 );
4+
35namespace DHensby \SilverStripeMasquerade \Forms \GridField ;
46
7+ use SilverStripe \Model \ArrayData ;
8+ use SilverStripe \Core \Validation \ValidationException ;
59use SilverStripe \Control \Controller ;
610use SilverStripe \Control \Director ;
711use SilverStripe \Control \HTTPRequest ;
1317use SilverStripe \Forms \GridField \GridField_URLHandler ;
1418use SilverStripe \ORM \DataObject ;
1519use SilverStripe \ORM \FieldType \DBHTMLText ;
16- use SilverStripe \ORM \ValidationException ;
1720use SilverStripe \Security \Member ;
18- use SilverStripe \View \ArrayData ;
1921use SilverStripe \View \SSViewer ;
2022
2123class GridFieldMasqueradeButton implements GridField_ColumnProvider, GridField_ActionMenuLink, GridField_URLHandler
@@ -29,7 +31,7 @@ public function getTitle($gridField, $record, $columnName)
2931 * @param GridField $gridField
3032 * @param array $columns
3133 */
32- public function augmentColumns ($ gridField , &$ columns )
34+ public function augmentColumns ($ gridField , &$ columns ): void
3335 {
3436 if (!in_array ('Actions ' , $ columns )) {
3537 $ columns [] = 'Actions ' ;
@@ -61,6 +63,7 @@ public function getColumnMetadata($gridField, $columnName)
6163 if ($ columnName == 'Actions ' ) {
6264 return ['title ' => '' ];
6365 }
66+
6467 return [];
6568 }
6669
@@ -79,9 +82,8 @@ public function getColumnsHandled($gridField)
7982 * Which GridField actions are this component handling.
8083 *
8184 * @param $gridField
82- * @return array
8385 */
84- public function getActions ($ gridField )
86+ public function getActions ($ gridField ): array
8587 {
8688 return ['masquerade ' ];
8789 }
@@ -110,7 +112,7 @@ protected function getMasqueradeAction($gridField, $record, $columnName)
110112 return null ;
111113 }
112114
113- $ data = new ArrayData ([
115+ $ data = ArrayData:: create ([
114116 'Link ' => $ this ->getUrl ($ gridField , $ record , $ columnName ),
115117 'ExtraClass ' => 'grid-field__icon-action--hidden-on-hover font-icon-eye btn--icon-large action-menu--handled '
116118 ]);
@@ -132,18 +134,16 @@ public function getGroup($gridField, $record, $columnName)
132134 return $ action ? GridField_ActionMenuItem::DEFAULT_GROUP : null ;
133135 }
134136
135- public function handleMasquerade (GridField $ gridField , HTTPRequest $ request )
137+ public function handleMasquerade (GridField $ gridField , HTTPRequest $ request ): ? HTTPResponse
136138 {
137139 /** @var DataObject $item */
138140 $ item = $ gridField ->getList ()->byID ($ request ->param ('ID ' ));
139141 if (!$ item ) {
140- return ;
142+ return null ;
141143 }
142144
143145 if (!$ item ->canMasquerade ()) {
144- throw new ValidationException (
145- _t (__CLASS__ . '.MasqueradePermissionsFailure ' , 'No masquerade permissions ' )
146- );
146+ throw ValidationException::create (_t (__CLASS__ . '.MasqueradePermissionsFailure ' , 'No masquerade permissions ' ));
147147 }
148148
149149 if (Member::config ()->get ('session_regenerate_id ' ) && !Director::is_cli () && !headers_sent ()) {
@@ -152,7 +152,7 @@ public function handleMasquerade(GridField $gridField, HTTPRequest $request)
152152
153153 $ request ->getSession ()->set ('masqueradingAs ' , $ item ->ID );
154154
155- $ response = new HTTPResponse ();
155+ $ response = HTTPResponse:: create ();
156156 $ response ->addHeader ('X-Reload ' , true );
157157 $ response ->addHeader ('X-ControllerURL ' , Director::absoluteBaseURL ());
158158 return $ response ;
0 commit comments