# |
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; |
# |
Jul 7th 2021, 13:02 |
info315 |
@alamnaryab I think your Controller has to pass the current user id to the Table, which pass it to the Behavior |