<div dir="ltr"><div><div>Sorry for the delay, I've been deep in the Alembic stuff (supporting migrations across three database engines is hard). :-)<br><br></div><div></div>There are a number of ways to proceed:<br><br></div><div>1) "The status quo hack"<br><br>Hack the TG port to emulate Routes (that is: use _method for routing, but don't actually change HTTP request method), or hack Kallithea to reset request method to POST after the routing step. Example:<br><br><a href="https://bitbucket.org/Unity-Technologies/kallithea/commits/714021984b5894fa74a88bfaa228fef4b0f545b7">https://bitbucket.org/Unity-Technologies/kallithea/commits/714021984b5894fa74a88bfaa228fef4b0f545b7</a><br><br></div><div>As can be seen, this the quick and dirty solution, and might be viable as a transitional hack.<br></div><div><br></div><div>2) "Kill _method and change the URLs"<br></div><div><br>Remove _method overrides completely (and good riddance) by changing PUT/DELETE routes to POST and adjusting URLs as needed to avoid ambiguity.<br><br><a href="https://bitbucket.org/Unity-Technologies/kallithea/commits/0a71c69001b2b54e24a9bc1bc89b2fe0f1ea9898">https://bitbucket.org/Unity-Technologies/kallithea/commits/0a71c69001b2b54e24a9bc1bc89b2fe0f1ea9898</a><br><br></div><div>As can be seen, there's a lot of work down this road; the above changeset fixes 2 out of 40 PUT/DELETE routes.<br></div><div><br>This also changes a number of URLs, it might be worthwhile to consider where we want to go with Kallithea's URLs before embarking on this, since there are numerous other problems in this area; the Kallithea URLs are often ambiguous in regards to repository paths, and we really need to fix that too. (Never name a repository "changelog", or "1", for that matter...)<br></div><div><br></div><div>3) "s/_method/action/"<br></div><div><br></div><div>As an alternative to 2, the URLs could be kept the same, and the PUT/DELETE controllers could be merged into a unified (possibly existing) POST controller. The controller would branch based on form data, like an "action" field (just like "_method", but without the HTTP baggage). This might be even more work, though.<br><br></div><div>Best,<br></div><div>Søren<br></div><div></div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 29, 2016 at 9:35 PM, Thomas De Schampheleire <span dir="ltr"><<a href="mailto:patrickdepinguin@gmail.com" target="_blank">patrickdepinguin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Søren,<br>
<span class=""><br>
On Tue, May 3, 2016 at 8:25 PM, Mads Kiilerich <<a href="mailto:mads@kiilerich.com">mads@kiilerich.com</a>> wrote:<br>
> On 05/03/2016 03:13 PM, Søren Løvborg wrote:<br>
>><br>
>> Considering that method overrides are designed specifically to<br>
>> accommodate HTML forms, we could pull the CSRF token out of the POST<br>
>> request body and stuff it into a header as part of the override<br>
>> process. But at that point, it just feels like we're digging ourselves<br>
>> in even deeper. A saner approach would be to phase out method<br>
>> overrides altogether, and just let POST requests be POST requests.<br>
>> (Add an "action" argument or similar as needed, but leave that to the<br>
>> controller, and keep it out of routing and security checks.)<br>
><br>
><br>
> It seems like that would be a general refactoring and code improvement that<br>
> could be done on the default branch and pave the way for the TG migration?<br>
<br>
</span>I was wondering whether you would be up to tackling this in the near<br>
future? (or perhaps you already started with this?)<br>
<br>
Of the current tests that are failing, the majority is failing due to<br>
the DELETE method not being accepted. I am meanwhile fixing the other<br>
failures, but it would be great if in a parallel path someone could<br>
look at the DELETE thing.<br>
<br>
You can see the current state of the Turbogears2 migration code to<br>
<a href="https://bitbucket.org/_amol_/kallithea-tg/" rel="noreferrer" target="_blank">https://bitbucket.org/_amol_/kallithea-tg/</a><br>
See also: <a href="https://bitbucket.org/conservancy/kallithea/wiki/Turbogears2Migration" rel="noreferrer" target="_blank">https://bitbucket.org/conservancy/kallithea/wiki/Turbogears2Migration</a><br>
<br>
Do let me know your thoughts...<br>
<br>
Best regards,<br>
Thomas<br>
</blockquote></div><br></div>