Log message #4193730

# At Username Text
# Jul 17th 2019, 13:05 admad we already found the problem. you need to find the solution :slightly_smiling_face:
# Jul 17th 2019, 13:04 scuadra thank you for your time
# Jul 17th 2019, 13:04 scuadra I still can't find the problem but anyway you were very patient
# Jul 17th 2019, 12:48 scuadra In my app.php I set the Security.salt to the one that was used in my Cake2 app
# Jul 17th 2019, 12:48 admad there's no caching involved in class loading (unless you have turned on opcode caching)
# Jul 17th 2019, 12:47 scuadra I also tried to clear the cache but still no result
# Jul 17th 2019, 12:47 scuadra yes, I tried debug($password); exit(); in the _setPassword() method but it wasn't triggered
# Jul 17th 2019, 12:46 admad So in spite of your claims you either havent named it properly or put in proper location
# Jul 17th 2019, 12:46 admad `object(Cake\ORM\Entity)` so your `Member` entity class isn't used.
# Jul 17th 2019, 12:45 scuadra the password field in the object is plain text
# Jul 17th 2019, 12:42 scuadra '[new]' => false, '[accessible]' => [ '*' => true ], '[dirty]' => [ 'password' => true ], '[original]' => [ 'password' => 'the original hash from db' ], '[virtual]' => [], '[hasErrors]' => false, '[errors]' => [], '[invalid]' => [], '[repository]' => 'Members'
# Jul 17th 2019, 12:42 scuadra The other keys are
# Jul 17th 2019, 12:42 scuadra It shows object(Cake\ORM\Entity) {} and all the fields of the table
# Jul 17th 2019, 12:37 admad what does `dd($user)` show after you set `$user->password`
# Jul 17th 2019, 12:36 scuadra I already checked it a couple of times and it is in the right place
# Jul 17th 2019, 12:33 admad make sure you have put the Member entity class in right place with proper class ame.
# Jul 17th 2019, 12:32 scuadra here it is
# Jul 17th 2019, 12:32 slackebot } return $this->redirect($this->Auth->redirectUrl()); } $this->Flash->error(__('Invalid username or password')); } }
# Jul 17th 2019, 12:32 slackebot !empty($this->getRequest()->getData())) { $user = $this->Auth->identify(); if ($user) { $this->Auth->setUser($user); if ($this->Auth->authenticationProvider()->needsPasswordRehash()) { $user = $this->Members->get($this->Auth->user('id')); $user->password = $this->getRequest()->getData('password'); $this->Members->save($user);
# Jul 17th 2019, 12:32 scuadra public function login() { if(empty($this->getRequest()->getParam('lang'))) { throw new NotFoundException(); } $lang = $this->getRequest()->getParam('lang'); if($this->Auth->user('id')) { return $this->redirect(['lang' => $lang, 'action' => 'index']); } $this->loadModel('Members'); if ($this->getRequest()->is('post') andand
# Jul 17th 2019, 12:29 admad show you actual login() action code
# Jul 17th 2019, 12:28 scuadra protected function _setPassword($password) { if (strlen($password) > 0) { return (new DefaultPasswordHasher)->hash($password); } }
# Jul 17th 2019, 12:27 admad it is
# Jul 17th 2019, 12:27 scuadra yes
# Jul 17th 2019, 12:27 scuadra maybe this is the problem
# Jul 17th 2019, 12:27 admad and have you added the `_setPassword()` method to your `Member` entity?
# Jul 17th 2019, 12:27 scuadra I did dd(get_class($this->Members)) because my table is named `members`
# Jul 17th 2019, 12:26 scuadra @admad it shows 'App\Model\Table\MembersTable'
# Jul 17th 2019, 12:24 admad @scuadra what does `dd(get_class($this->Users))` show?
# Jul 17th 2019, 12:22 ndm @scuadra The `$_accessible` property isn't involved if you're setting the property directly. If your entity has the hashing part implemented, then you might not be using that entity class. Check what exactly `$this->Users` is and what `$this->Users->get()` returns.
# Jul 17th 2019, 12:22 scuadra @admad I used exactly the same function in the link I provided
# Jul 17th 2019, 12:22 admad sorry, I see you linked the manual which shows how to update password
# Jul 17th 2019, 12:20 admad authcomponent (or it's classes) don't make any queries to update db, so don't see how simply logging in updated the password in db. It's your app code that's doing so.
# Jul 17th 2019, 12:20 scuadra I also checked the namespaces and they seem to be fine
# Jul 17th 2019, 12:19 scuadra I also tried to add " protected $_accessible = ['*' => true]; " in the entity class but with no success
# Jul 17th 2019, 12:18 scuadra @ndm no it is present
# Jul 17th 2019, 12:17 ndm @scuadra You might be missing https://book.cakephp.org/3.0/en/controllers/components/authentication.html#hashing-passwords
# Jul 17th 2019, 12:15 davorminchorov Hi, I want to setup Gmail SMTP for sending emails. I am using a gmail email as part of the company G Suite. Should I use the GSuite SMTP relay or can I do it with the normal one like for personal emails?
# Jul 17th 2019, 12:11 scuadra Hello. I am trying to migrate the passwords of the users in my application (in my case the table is called `members`) form Cake2 to Cake3. I followed these steps --> https://book.cakephp.org/3.0/en/controllers/components/authentication.html#changing-hashing-algorithms. But the problem is when the user is logged in the old hash in the database is being replaced with the plain password instead of a hashed one. What could be the problem?
# Jul 17th 2019, 11:57 dereuromark also traits work
# Jul 17th 2019, 11:38 graziel and extends all tests from it, ie put method `setUser(int $id)` and call it as needed (sometimes i need logged user sometimes not)