hannesmannerheim / qvitter

mirror. moved to https://git.gnu.io/h2p/Qvitter, send merge requests and issues there
https://git.gnu.io/h2p/Qvitter
GNU Affero General Public License v3.0
86 stars 26 forks source link

Crazy stunt #185

Closed ghost closed 9 years ago

ghost commented 9 years ago

hijack the action execution!

Listen all y'all, this is SABOTAGE!!!!

:D :D :D :D :D :D

ghost commented 9 years ago

PS, this only works because you never do common_local_url('qvitter', ...)

This should actually be done when Action calls "showPage" or something, which I think I'll enable for in GNU social now. An action that can instead of hijacking the ENTIRE ACTION (as in this case) can hijack just the rendering.

Det borde funka på din version av GNU social också, alla funktioner finns där i alla fall. Förhoppningsvis har de inga buggar (tänker på de där småfixarna främst, med ->getPref() typ).

hannesmannerheim commented 9 years ago

vad gör det här?

ghost commented 9 years ago

Det gör att du slipper använda URLMapper_Overwrite-grejen. Den använde sig av en lustig bugg i PHP för att fungera (du kom åt en protected function genom att använda en icke-statisk funktion i en klass som anropade sig själv statiskt och på så vis kunde köra makeRegex för en annan instans av klassen!

Detta gör rent konkret att när någon action körs så kollas det om den matchar något som Qvitter behöver göra själv. Ifall det matchar körs QvitterAction och därefter hindras den ursprungliga actionen från att köras (return false i onStartActionExecute).

hannesmannerheim commented 9 years ago

funkar tyvärr inte med gnusocial-versionen vi kör på quitter.se.

funkar inte URLMapper_Overwrite med nyare versioner av PHP?

ghost commented 9 years ago

PHP 5.5, 5.6 någonstans så blir det standard att spotta ur sig "Strict Standards"-varningar. Det slutar inte fungera i nyare versioner, men det blir dryga loggar.

Jag kan lyfta ut de saker av det här som var bra ändå och requesta merge med dem. Stänger denna.