silverstripe-terraformers / silverstripe-embargo-expiry

BSD 3-Clause "New" or "Revised" License
7 stars 7 forks source link

Immediate publish after setting "scheduled publish date" causes server error #13

Closed chillu closed 6 years ago

chillu commented 6 years ago

See https://github.com/silverstripe-terraformers/silverstripe-embargo-expiry/issues/12 for a potential UX solution to this issue.

<!DOCTYPE html><html><head><title>POST /admin/pages/edit/EditForm/2/</title><link rel="stylesheet" type="text/css" href="/resources/silverstripe/framework/client/styles/debug.css?m=1511148410" /></head><body><div class="header info error"><h1>[Emergency] Uncaught LogicException: The current member does not have permission to publish this ChangeSet.</h1><h3>POST /admin/pages/edit/EditForm/2/</h3><p>Line <strong>134</strong> in <strong>/var/www/mysite/www/vendor/silverstripe/versioned/src/ChangeSet.php</strong></p></div><div class="info"><h3>Source</h3><pre><span>125</span>                 &quot;ChangeSet can't be published if it has been already published or reverted.&quot;
<span>126</span>             );
<span>127</span>         }
<span>128</span>         if (!$this-&gt;isSynced()) {
<span>129</span>             throw new ValidationException(
<span>130</span>                 &quot;ChangeSet does not include all necessary changes and cannot be published.&quot;
<span>131</span>             );
<span>132</span>         }
<span>133</span>         if (!$this-&gt;canPublish()) {
<span>134</span> <span class="error">            throw new LogicException(&quot;The current member does not have permission to publish this ChangeSet.&quot;);
</span><span>135</span>         }
<span>136</span> 
<span>137</span>         DB::get_conn()-&gt;withTransaction(function () {
<span>138</span>             foreach ($this-&gt;Changes() as $change) {
<span>139</span>                 /** @var ChangeSetItem $change */
<span>140</span>                 $change-&gt;publish();
</pre></div><div class="info"><h3>Trace</h3><ul><li><b>SilverStripe\Versioned\ChangeSet-&gt;publish()</b>
<br />
Versioned.php:1484</li>
<li><b>SilverStripe\Versioned\Versioned-&gt;publishRecursive()</b>
<br />
</li>
<li><b>call_user_func_array(Array, Array)</b>
<br />
Extensible.php:144</li>
<li><b>SilverStripe\View\ViewableData-&gt;SilverStripe\Core\{closure}(Page, Array)</b>
<br />
CustomMethods.php:61</li>
<li><b>SilverStripe\View\ViewableData-&gt;__call(publishRecursive, Array)</b>
<br />
CMSMain.php:1628</li>
<li><b>SilverStripe\CMS\Controllers\CMSMain-&gt;save(Array, SilverStripe\Forms\Form)</b>
<br />
CMSMain.php:1843</li>
<li><b>SilverStripe\CMS\Controllers\CMSMain-&gt;publish(Array, SilverStripe\Forms\Form, SilverStripe\Control\HTTPRequest, SilverStripe\Admin\LeftAndMainFormRequestHandler)</b>
<br />
FormRequestHandler.php:231</li>
<li><b>SilverStripe\Forms\FormRequestHandler-&gt;httpSubmission(SilverStripe\Control\HTTPRequest)</b>
<br />
RequestHandler.php:320</li>
<li><b>SilverStripe\Control\RequestHandler-&gt;handleAction(SilverStripe\Control\HTTPRequest, httpSubmission)</b>
<br />
RequestHandler.php:201</li>
<li><b>SilverStripe\Control\RequestHandler-&gt;handleRequest(SilverStripe\Control\HTTPRequest)</b>
<br />
RequestHandler.php:225</li>
<li><b>SilverStripe\Control\RequestHandler-&gt;handleRequest(SilverStripe\Control\HTTPRequest)</b>
<br />
Controller.php:207</li>
<li><b>SilverStripe\Control\Controller-&gt;handleRequest(SilverStripe\Control\HTTPRequest)</b>
<br />
LeftAndMain.php:750</li>
<li><b>SilverStripe\Admin\LeftAndMain-&gt;handleRequest(SilverStripe\Control\HTTPRequest)</b>
<br />
AdminRootController.php:123</li>
<li><b>SilverStripe\Admin\AdminRootController-&gt;handleRequest(SilverStripe\Control\HTTPRequest)</b>
<br />
Director.php:360</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
VersionedHTTPMiddleware.php:40</li>
<li><b>SilverStripe\Versioned\VersionedHTTPMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
AuthenticationMiddleware.php:61</li>
<li><b>SilverStripe\Security\AuthenticationMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
CanonicalURLMiddleware.php:155</li>
<li><b>SilverStripe\Control\Middleware\CanonicalURLMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
FlushMiddleware.php:26</li>
<li><b>SilverStripe\Control\Middleware\FlushMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
RequestProcessor.php:66</li>
<li><b>SilverStripe\Control\RequestProcessor-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
SessionMiddleware.php:20</li>
<li><b>SilverStripe\Control\Middleware\SessionMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
AllowedHostsMiddleware.php:60</li>
<li><b>SilverStripe\Control\Middleware\AllowedHostsMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
TrustedProxyMiddleware.php:176</li>
<li><b>SilverStripe\Control\Middleware\TrustedProxyMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\Director-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
HTTPMiddlewareAware.php:65</li>
<li><b>SilverStripe\Control\Director-&gt;callMiddleware(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
Director.php:369</li>
<li><b>SilverStripe\Control\Director-&gt;handleRequest(SilverStripe\Control\HTTPRequest)</b>
<br />
HTTPApplication.php:48</li>
<li><b>SilverStripe\Control\HTTPApplication-&gt;SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
</li>
<li><b>call_user_func(Closure, SilverStripe\Control\HTTPRequest)</b>
<br />
HTTPApplication.php:66</li>
<li><b>SilverStripe\Control\HTTPApplication-&gt;SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
</li>
<li><b>call_user_func(Closure, SilverStripe\Control\HTTPRequest)</b>
<br />
ErrorControlChainMiddleware.php:56</li>
<li><b>SilverStripe\Core\Startup\ErrorControlChainMiddleware-&gt;SilverStripe\Core\Startup\{closure}(SilverStripe\Core\Startup\ErrorControlChain)</b>
<br />
</li>
<li><b>call_user_func(Closure, SilverStripe\Core\Startup\ErrorControlChain)</b>
<br />
ErrorControlChain.php:236</li>
<li><b>SilverStripe\Core\Startup\ErrorControlChain-&gt;step()</b>
<br />
ErrorControlChain.php:226</li>
<li><b>SilverStripe\Core\Startup\ErrorControlChain-&gt;execute()</b>
<br />
ErrorControlChainMiddleware.php:69</li>
<li><b>SilverStripe\Core\Startup\ErrorControlChainMiddleware-&gt;process(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPMiddlewareAware.php:62</li>
<li><b>SilverStripe\Control\HTTPApplication-&gt;SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)</b>
<br />
HTTPMiddlewareAware.php:65</li>
<li><b>SilverStripe\Control\HTTPApplication-&gt;callMiddleware(SilverStripe\Control\HTTPRequest, Closure)</b>
<br />
HTTPApplication.php:67</li>
<li><b>SilverStripe\Control\HTTPApplication-&gt;execute(SilverStripe\Control\HTTPRequest, Closure, )</b>
<br />
HTTPApplication.php:49</li>
<li><b>SilverStripe\Control\HTTPApplication-&gt;handle(SilverStripe\Control\HTTPRequest)</b>
<br />
index.php:17</li>
</ul></div></body></html>