Thank you!

--
 Stefano Zoffoli
*Resp. Sviluppo Software*
347 8180258

*Librasoft Snc*
www.LibrasoftSnc.it <http://www.librasoftsnc.it/>
www.ProgettoKuma.it <http://www.progettokuma.it/>
0543 424612


2014-07-23 18:18 GMT+02:00 José Lorenzo <[email protected]>:

> The displayField you can get it from the table. That is
> $event->subject()->displayField();
>
> You can also determine the prefix from the table in $event->subject() I
> guess
>
>
> On Wednesday, July 23, 2014 4:50:10 PM UTC+2, Stefano Zoffoli wrote:
>>
>> Thank you, this is a very nice solution and it worked perfectly!
>>
>> How can I pass extra infos for Logs' description field? (i mean like a
>> custom prefix string and the entity displayfield's value?)
>>
>>
>> --
>>  Stefano Zoffoli
>> *Resp. Sviluppo Software*
>> 347 8180258
>>
>> *Librasoft Snc*
>> www.LibrasoftSnc.it <http://www.librasoftsnc.it/>
>> www.ProgettoKuma.it <http://www.progettokuma.it/>
>> 0543 424612
>>
>>
>> 2014-07-23 13:55 GMT+02:00 José Lorenzo <[email protected]>:
>>
>>> I see.... I would re-do that at the controller level:
>>>
>>> class AuditLogger implements \Cake\Event\EventListener {
>>>
>>>   public function construct(AuthComponent $auth) {
>>>     $this->_auth = $auth;
>>>   }
>>>
>>>   public function implementedEvents() {
>>>     return ['Model.afterSave' => 'logSave'];
>>>   }
>>>
>>>   public function logSave($event, $entity, $options) {
>>>      $logs->save(new Entity(['user_id' => $this->auth->user('id'),
>>> ...]));
>>>   }
>>> }
>>>
>>> And in your Controller:
>>>
>>> public function beforeFilter() {
>>>    ....
>>>    $this->Customers->eventManager()->attach(new AuditLogger($this->Auth)
>>> );
>>> }
>>>
>>> This way you keep your separation of concerns and have smaller and more
>>> testable classes that you can reuse :)
>>>
>>> On Wednesday, July 23, 2014 12:56:51 PM UTC+2, Stefano Zoffoli wrote:
>>>>
>>>> Yes of course:
>>>> I have a CustomersTable, a UsersTable and a LogsTable. The LogsTable
>>>> has basically 4 fields: id, user_id, description, created.
>>>>
>>>> When an authenticated user saves a customer, i'd like to log this user
>>>> action. So, in CustomersTable I added a callback method like this:
>>>>
>>>> public function afterSave(Event $event, Entity $entity, array $options)
>>>> {
>>>>   $logs = TableRegistry::get('Logs');
>>>>   $log = $logs->newEntity([
>>>> 'user_id' => AuthComponent::user('id'),
>>>>   'description' => 'Saved customer',
>>>>   ]);
>>>>   $logs->save($log);
>>>> }
>>>>
>>>> But AuthComponent::user() is not static and gave me fatal error.
>>>>
>>>>
>>>> --
>>>>  Stefano Zoffoli
>>>> *Resp. Sviluppo Software*
>>>> 347 8180258
>>>>
>>>> *Librasoft Snc*
>>>> www.LibrasoftSnc.it <http://www.librasoftsnc.it/>
>>>> www.ProgettoKuma.it <http://www.progettokuma.it/>
>>>> 0543 424612
>>>>
>>>>
>>>> 2014-07-23 12:40 GMT+02:00 José Lorenzo <[email protected]>:
>>>>
>>>>> That's not possible anymore. We are currently investigating clean ways
>>>>> of implementing this use case. May I ask why you need the session in the
>>>>> table?
>>>>>
>>>>>
>>>>> On Wednesday, July 23, 2014 11:53:48 AM UTC+2, Stefano Zoffoli wrote:
>>>>>>
>>>>>> Hi,
>>>>>> i'd like to read user auth infos in a Table Class (for example i want
>>>>>> to log which user has saved a given entity in a AfterSave callback 
>>>>>> method).
>>>>>>
>>>>>> In cakephp 2 there was AuthComponent::user() static method, but in
>>>>>> cakephp 3 that method is not static anymore, and I can't find a simple 
>>>>>> way
>>>>>> to access that information outside of Controllers.
>>>>>>
>>>>>> How can i do that?
>>>>>> Thank you
>>>>>>
>>>>>> --
>>>>>>  Stefano Zoffoli
>>>>>> *Resp. Sviluppo Software*
>>>>>> 347 8180258
>>>>>>
>>>>>> *Librasoft Snc*
>>>>>> www.LibrasoftSnc.it <http://www.librasoftsnc.it/>
>>>>>> www.ProgettoKuma.it <http://www.progettokuma.it/>
>>>>>> 0543 424612
>>>>>>
>>>>>  --
>>>>> Like Us on FaceBook https://www.facebook.com/CakePHP
>>>>> Find us on Twitter http://twitter.com/CakePHP
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "CakePHP" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at http://groups.google.com/group/cake-php.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>> Like Us on FaceBook https://www.facebook.com/CakePHP
>>> Find us on Twitter http://twitter.com/CakePHP
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "CakePHP" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/cake-php.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/cake-php.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to