PDO is coming, here's what you need to know

Hello,

everything works except login:
PHP message: PHP Fatal error: Uncaught Error: Call to a member function check_password() on null in /tt-rss/classes/pref/prefs.php:925
Stack trace:
#0 /tt-rss/include/functions.php(1091): Pref_Prefs::isdefaultpassword()
#1 /tt-rss/classes/rpc.php(327): make_init_params()
#2 /tt-rss/backend.php(123): RPC->sanityCheck()
#3 {main}
thrown in /tt-rss/classes/pref/prefs.php on line 925

I’m on OpenBSD with httpd and php-fpm.

that’s interesting. are you using single user mode or external authentication of some kind?

e: my guess would be single user mode

should be fixed by https://git.tt-rss.org/git/tt-rss/commit/9390ddeae2ed814bb89c15742ee7296046609d1e

I was using auth_ldap and switched back to auth_internal. SINGLE_USER_MODE is set to false.

Fixed the login page but can’t remember my credentials :grin:

Just updated and I’m getting this error.

[error] 26432#0: *1515 FastCGI sent in stderr: “PHP message: PHP Parse error: syntax error, unexpected ‘$authenticator’ (T_VARIABLE) in /var/www/ttrss/classes/pref/prefs.php on line 925”

mm could be because of the just merged pull request

I’ll take a look in an hour or so, you can do git checkout to the previous commit until then

Just did a git reset back to the “minor css updates” commit and I get the same error so it isn’t that.

should be the one about single user mode

Ah-ha. The single user commit is actually after the one I reset back to. But I may not have reset it properly. I just did a reset --hard and now ttrss has loaded succesfully. So yes it’s one of those latest commits doing it.

Also (not hijacking other thread) in regards to the fever API plugin. It is broken, but I expected that. Hopefully someone can fix it one day but I just won’t use it for the moment.

"PHP message: PHP Notice: Legacy connect requested to pgsql in /var/www/ttrss/classes/db.php on line 22
PHP message: PHP Fatal error: Uncaught Error: Call to a member function query() on null in /var/www/ttrss/plugins.local/repos/fever/fever/fever_api.php:149

well the PR fix has been submitted so i guess this should work now

re: fever plugin and maybe others like it

i guess there’s a change that legacy database connection is not initialized automatically for the plugins now. regardless, this should be a very easy one line fix. somewhere in init() there should be first mention of $this->dbh or something like that, just put $this->dbh = Db::get() before it and it should work.

Updated again and it is working fine now with the latest PR. Thanks.

I can’t see any line like that in the init.php. There are tons of lines with that in the main fever_api.php file though. If you want to mock the source code it’s here. tinytinyrss-fever-plugin/fever at master · dasmurphy/tinytinyrss-fever-plugin · GitHub

oh, it’s a handler, then it should be assigned in the constructor.

(fever_api.php)

function __construct() {
    $this->dbh = Db::get();
}

this would probably work

e: the code is legit not very good btw, even worse than mine

I was having same issue as xtaz, new pull fixed it, thanks!

The changes to classes/pref/prefs.php in the latest commit (f559d74) fixed my issue. At login, the instance was hanging at “Loading…30%”.

All good now, thanks Fox!

Running v17.12 (f559d74) now. PDO update smooth as silk. Thanks @fox !
.

Were you able to get auth_ldap working again? I too am using it, but don’t see anything in there (init.php) that needs DB information that might be broken by PDO.

Back on master, things look good here too.

No, I opened an issue: Plugin does not work anymore since tt-rss moved to PDO · Issue #26 · hydrian/TTRSS-Auth-LDAP · GitHub

that should have been fixed by the semi-botched PR yesterday

if it doesn’t work on current trunk i can revise it (probably need to replace function_exists() for check_password with method_exists())

https://git.tt-rss.org/git/tt-rss/src/master/classes/pref/prefs.php#L925

(nvm about auth_base)

i guess iauthmodule could enforce this but idk if its really necessary.

It works but I can’t login:
PHP message: PHP Warning: Failed login attempt for huy from x.x.x.x in /tt-rss/classes/handler/public.php on line 505