Overview
Comment: | Corrections pour la fonctionnalité "remember me" |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
864f2a278c8983708e71d44db7bd389a |
User & Date: | bohwaz on 2017-09-05 05:59:54 |
Other Links: | branch diff | manifest | tags |
Context
2017-09-05
| ||
06:03 | Lors de la mise à jour, si ID était le champ identifiant, remplacement par numéro de membre check-in: 91546b8154 user: bohwaz tags: dev | |
05:59 | Corrections pour la fonctionnalité "remember me" check-in: 864f2a278c user: bohwaz tags: dev | |
05:18 | Corrections de bugs sur l'activation de login OTP check-in: 79ea6bcd45 user: bohwaz tags: dev | |
Changes
Modified src/include/data/schema.sql from [666c258805] to [9abfe9b965].
︙ | ︙ | |||
32 33 34 35 36 37 38 | CREATE TABLE IF NOT EXISTS membres_sessions -- Sessions ( selecteur TEXT NOT NULL, hash TEXT NOT NULL, id_membre INTEGER NOT NULL REFERENCES membres (id) ON DELETE CASCADE, | | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | CREATE TABLE IF NOT EXISTS membres_sessions -- Sessions ( selecteur TEXT NOT NULL, hash TEXT NOT NULL, id_membre INTEGER NOT NULL REFERENCES membres (id) ON DELETE CASCADE, expire INT NOT NULL, PRIMARY KEY (selecteur, id_membre) ); CREATE TABLE IF NOT EXISTS cotisations -- Types de cotisations et activités ( |
︙ | ︙ |
Modified src/include/lib/Garradin/Membres/Session.php from [cc2ebcd25d] to [b5c8d6d848].
︙ | ︙ | |||
35 36 37 38 39 40 41 | } protected function getUserForLogin($login) { $champ_id = Config::getInstance()->get('champ_identifiant'); // Ne renvoie un membre que si celui-ci a le droit de se connecter | | < | | | | | | | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | } protected function getUserForLogin($login) { $champ_id = Config::getInstance()->get('champ_identifiant'); // Ne renvoie un membre que si celui-ci a le droit de se connecter $query = 'SELECT m.id, m.%1$s AS login, m.passe AS password, m.secret_otp AS otp_secret FROM membres AS m INNER JOIN membres_categories AS mc ON mc.id = m.id_categorie WHERE m.%1$s = ? AND mc.droit_connexion >= %2$d LIMIT 1;'; $query = sprintf($query, $champ_id, Membres::DROIT_ACCES); return $this->db->first($query, $login); } protected function getUserDataForSession($id) { return $this->db->first('SELECT m.*, c.droit_connexion, c.droit_wiki, c.droit_membres, c.droit_compta, c.droit_config, c.droit_membres FROM membres AS m INNER JOIN membres_categories AS c ON m.id_categorie = c.id WHERE m.id = ? LIMIT 1;', $id); } protected function storeRememberMeSelector($selector, $hash, $expiry, $user_id) { return $this->db->insert('membres_sessions', [ 'selecteur' => $selector, 'hash' => $hash, 'expire' => $expiry, 'id_membre' => $user_id, ]); } protected function expireRememberMeSelectors() { return $this->db->delete('membres_sessions', $this->db->where('expire', '<', time())); } protected function getRememberMeSelector($selector) { return $this->db->first('SELECT selecteur AS selector, hash, id_membre AS user_id, m.passe AS user_password, expire AS expiry FROM membres_sessions AS s INNER JOIN membres AS m ON m.id = s.id_membre WHERE s.selecteur = ? LIMIT 1;', $selector); } protected function deleteRememberMeSelector($selector) { |
︙ | ︙ |