Log message #4267251

# At Username Text
# Jul 7th 2021, 17:09 tyler.adam.lazenby ```class User extends Entity implements IdentityInterface, \Authorization\IdentityInterface { use LazyLoadEntityTrait; /** * Fields that can be mass assigned using newEntity() or patchEntity(). * * Note that when '*' is set to true, this allows all unspecified fields to * be mass assigned. For security purposes, it is advised to set '*' to false * (or remove it), and explicitly make
# Jul 7th 2021, 17:09 slackebot2 ($this->Users->save($user)) { $this->Flash->success(__('The user has been saved.')); return $this->redirect(['action' => 'index']); } $this->Flash->error(__('The user could not be saved. Please, try again.')); }```
# Jul 7th 2021, 17:09 tyler.adam.lazenby ```$customer = $this->Woocommerce->createCustomer($woo_data); if (!$customer->id) { $this->Flash->error(__('The user could not be created on the shop. Please try again. If this problem persists please contact support.')); } else { $data['customer_id'] = $customer->id; debug($data); $user = $this->Users->patchEntity($user, $data, ['associations' => ['Operators']]); dd($user); if
# Jul 7th 2021, 17:09 tyler.adam.lazenby I am trying to set a unique value called customer_id into my users table. It is for a woocommerce data and it isn't saving
# Jul 7th 2021, 16:20 dereuromark yeah, it is about the files in git :) so in the end it should completely not matter what the folders are, if they are created in the right env anyway.
# Jul 7th 2021, 16:16 bato I don't think git tracks directory permissions. Anyway stay close to prod evn makes sense
# Jul 7th 2021, 16:11 kevin.pfeifer indeed
# Jul 7th 2021, 16:11 dereuromark yeah, which is not relevant for normal files :)
# Jul 7th 2021, 16:11 kevin.pfeifer git ignores/forgets executable bit by default as far as i know
# Jul 7th 2021, 16:10 dereuromark either way, staying local more close to prod env is a plus. that includes the creation of files and folders, which in return takes all issues away about permissions
# Jul 7th 2021, 16:10 dereuromark but yeah, depends on the deploy strategy.
# Jul 7th 2021, 16:10 dereuromark git doesnt lose permissions when checking it out :) at least for me it doesnt
# Jul 7th 2021, 16:06 bato :thinking_face: I think the `i18n` shell script is intended to be used in "dev" instance (local, docker, container, etc...) to create translations. Then it will be pushed to a (probably) git repository. When the repository is cloned that permissions are lost. So I can't figure out why there is need of 770 permissions, but maybe it's my limitations. Thanks for the support as usual ;)
# Jul 7th 2021, 14:52 dereuromark https://stackoverflow.com/questions/19547085/differences-between-chmod-755-vs-750-permissions-set => why would world need access to those if the servers are properly (securely) configured?
# Jul 7th 2021, 14:52 dereuromark linux :) which means local PC but internet apps (which means not so local apps on the web) are not targeting you yourself on your computer, but on remote servers
# Jul 7th 2021, 14:47 bato in linux system the folder created are 775 by default, why it should be 770?
# Jul 7th 2021, 14:44 dereuromark yeah, I didnt have any issues so far, and I run multiple apps through the same container.
# Jul 7th 2021, 14:43 dereuromark i dont think it is a bug, the permissions shouldnt be larger by default for any folder. any if you use the tools I mentioned there will never be such issues.
# Jul 7th 2021, 14:42 bato devilbox seems cool also if missing PHP 7.4 and 8. Anyway I think it's a bug, I'll try to open a PR later
# Jul 7th 2021, 14:35 dereuromark devilbox is just awesome. works ootb (pun intended).
# Jul 7th 2021, 14:34 dereuromark thats why you always use a box (vm or docker) :)
# Jul 7th 2021, 14:30 bato If missing `Locale`folder `bin/cake i18n extract` create new one with permissions `770` If web server isn't the creator or doesn't belong to the group, it can't access to that folder
# Jul 7th 2021, 14:24 bato solved... it was a permission issue on `Locale` folder
# Jul 7th 2021, 14:11 bmudda @alamnaryab you can try this plugin for populating created and modified by attributes: https://github.com/UseMuffin/Footprint
# Jul 7th 2021, 13:59 dereuromark I would debug the __d() function and what it looks up in the end, what language it tries to find etc
# Jul 7th 2021, 13:59 dereuromark cake generates the mo file, no need to do anything from normal po usage
# Jul 7th 2021, 13:57 kevin.pfeifer So you edit the `my_plugin.po` with something like PoEdit and generate a `my_plugin.mo` from it, right?
# Jul 7th 2021, 13:55 bato Uhm... so should it work automatically? No need to configure anything else in plugin?
# Jul 7th 2021, 13:51 dereuromark well, 2 should also be fine. https://github.com/cakephp/localized/tree/3.x/src/Locale
# Jul 7th 2021, 13:50 dereuromark I always used 3 letter iso codes in cake3 ( https://github.com/dereuromark/cakephp-tools/tree/cake3/src/Locale ), not sure if that makes a difference in the end.
# Jul 7th 2021, 13:36 slackebot2 forcing locale `I18n::setLocale('it')` but the strings aren't translated. Do I need to add/load a translator for the plugin?
# Jul 7th 2021, 13:36 bato Hi all, I need some help with localization in a plugin for CakePHP 3.9. I have a plugin named `MyPlugin` and I made translations using `__d()` and domain `my_plugin`. Then I have extracted transaltions with `./bin/cake I18n extract --plugin MyPlugin` generating `my_plugin.pot` file inside the plugin `src/Locale` directory. I have generated `src/Locale/it/my_plugin.po` file with `./bin/cake i18n init it -p MyPlugin` To test it I'm
# Jul 7th 2021, 13:14 dereuromark As only the controller should have access to request data.
# Jul 7th 2021, 13:13 dereuromark Usually you would pass in that data from the controller layer into the model layer and then the behavior can use that.
# Jul 7th 2021, 13:13 dereuromark I think Utils one contains one. Well, they are also cheating a bit using global auth forwarding :) But better than nothing. https://github.com/cakemanager/cakephp-utils/blob/master/src/Model/Behavior/WhoDidItBehavior.php
# Jul 7th 2021, 13:11 dereuromark At the very least a session class wrapper would be appropriate here.
# Jul 7th 2021, 13:11 alamnaryab no, how can I use the default one?
# Jul 7th 2021, 13:11 dereuromark See awesome list. The main problem with yours is that you directly access super global $_SESSION, which is very bad.
# Jul 7th 2021, 13:10 dereuromark Why? :) You do know that it already exists, right?
# Jul 7th 2021, 13:06 slackebot2 $entity->modified_by = $loggedin_user_id; }else{ $entity->modified_by = $loggedin_user_id; } } }``` How can I improve it?
# Jul 7th 2021, 13:06 alamnaryab I have created a `CreatedbyBehavior` to auto populate `created_by` and `modified_by` fields ```class CreatedbyBehavior extends Behavior { public function beforeSave(EventInterface $event, EntityInterface $entity, ArrayObject $options) { $loggedin_user_id = isset($_SESSION['Auth']->id)?$_SESSION['Auth']->id:-1; if($entity->isNew()){ $entity->created_by = $loggedin_user_id;