Log message #4263030

# At Username Text
# May 13th 2021, 07:13 paolo.bragagni hi. found a way to make a bake theme with a plugin etc.. I dont understand how to bake my own actions and views
# May 12th 2021, 22:57 rightscoreanalysis $request->input(); :)
# May 12th 2021, 22:09 rightscoreanalysis it was required
# May 12th 2021, 22:08 rightscoreanalysis is there an equivalent $request->getContent() in cake2?
# May 12th 2021, 21:57 greg138 Didn't ever use Cake2, but I think if you don't include the plugin, then it won't find *your* model class, it will use it's default scaffolding one, which will default the name of the database table.
# May 12th 2021, 21:37 joacir.santos @ndm I had think about this way too. tks!
# May 12th 2021, 21:30 slackebot $response; }```
# May 12th 2021, 21:30 slackebot `\Authorization\Middleware\UnauthorizedHandler\RedirectHandler::handle()`, and set a flash message on the request object (works as of CakePHP 4.2), something like: ```public function handle(Exception $exception, ServerRequestInterface $request, array $options = []): ResponseInterface { $response = parent::handle($exception, $request, $options); $request->getFlash()->error('You are not authorized to access that location'); return
# May 12th 2021, 21:30 ndm @joacir.santos There is no overly straightforward way yet I think. What you can for example do, is create a custom/extended unauthorized handler (https://book.cakephp.org/authorization/2/en/middleware.html#handling-unauthorized-requests) that handles the `\Authorization\Exception\ForbiddenException`. For example extend the plugin's redirect handler, overwrite
# May 12th 2021, 20:56 joacir.santos Greetings! I am using Cake4 whith AuhorizationComponent. How may I show a flash message to unauthorized user when try to access an action? There is any setup for this or I need to check identity permission before each controller action?
# May 12th 2021, 20:30 virtudavi99 So I could see Slack channels here in the Discord?
# May 12th 2021, 20:20 rightscoreanalysis but cake is complaining that the table is missing
# May 12th 2021, 20:20 rightscoreanalysis because in the top of the model file I have: public $useTable = false;
# May 12th 2021, 20:17 rightscoreanalysis legacy cakephp2, if I have a model file in the plugin and I need to load it, do I need to prefix the name of model with the plugin name?
# May 12th 2021, 19:33 thomas078 missing tables on test
# May 12th 2021, 19:32 thomas078 sure. Solved. It was nothing about Authorization. It was clearly stated on cli-error.log
# May 12th 2021, 19:19 thomas078 think i found it. Problem was when loading associated models within tests..
# May 12th 2021, 18:57 slackebot object(Authentication\Authenticator\Result) { [protected] _status => 'SUCCESS' [protected] _data => object(App\Model\Entity\User) {```
# May 12th 2021, 18:57 slackebot '_successfulIdentifier' => null, '_defaultConfig' => [], '_loaded' => [ (int) 0 => 'Password' ], '_config' => [], '_configInitialized' => true } [protected] _config => [ 'fields' => [ 'username' => 'username' ], 'sessionKey' => 'Auth', 'identify' => false, 'identityAttribute' => 'identity' ] [protected] _configInitialized => true } [protected] _result =>
# May 12th 2021, 18:57 slackebot '_configInitialized' => true } [protected] _successfulAuthenticator => object(Authentication\Authenticator\SessionAuthenticator) { [protected] _defaultConfig => [ 'fields' => [ 'username' => 'username' ], 'sessionKey' => 'Auth', 'identify' => false, 'identityAttribute' => 'identity' ] [protected] _identifier => object(Authentication\Identifier\IdentifierCollection) { '_errors' => [],
# May 12th 2021, 18:57 slackebot '_config' => [], '_configInitialized' => true }, '_defaultConfig' => [], '_loaded' => [ (int) 0 => 'Session', (int) 1 => 'Form' ], '_config' => [], '_configInitialized' => true } [protected] _identifiers => object(Authentication\Identifier\IdentifierCollection) { '_errors' => [], '_successfulIdentifier' => null, '_defaultConfig' => [], '_loaded' => [ (int) 0 => 'Password' ], '_config' => [],
# May 12th 2021, 18:57 thomas078 ```it is wierd as it looks like that Session is loaded correctly. object(Authentication\AuthenticationService) { [protected] _authenticators => object(Authentication\Authenticator\AuthenticatorCollection) { '_identifiers' => object(Authentication\Identifier\IdentifierCollection) { '_errors' => [], '_successfulIdentifier' => null, '_defaultConfig' => [], '_loaded' => [ (int) 0 => 'Password' ],
# May 12th 2021, 18:51 ndm You need to do some debugging as to what the request, session, etc looks like in your app when the test request runs
# May 12th 2021, 18:51 thomas078 ok. That must be the issue
# May 12th 2021, 18:50 ndm If everything works as intended, then the session authenticator will look up and return the value that you've configured for the session, and the authentication middleware will then use it to populate the request object with the identity attribute accordingly.
# May 12th 2021, 18:47 thomas078 i think that the problem is that im trying to read $this->request->getAttribute('identity')->getIdentifier() in controller and on the test i write $this->session(['Auth' => $user]);
# May 12th 2021, 18:45 thomas078 Because login works when i do it normally via browser.
# May 12th 2021, 18:45 thomas078 I think it has something to do with that sesstion now.
# May 12th 2021, 18:44 ndm eg you should receive the same error in a regular, real request
# May 12th 2021, 18:43 ndm That's what you'd have to do when you do not apply any authorization checks in that request, but that shouldn't be dependent on the test environment.
# May 12th 2021, 18:40 thomas078 Ok. Got it. When testing, Authentication works. Problem is Authorization plugin. if i $this->Authorization->skipAuthorization(); on controller it works
# May 12th 2021, 18:26 ndm No, there is no such thing, all you do in integration tests is configuring the environment accordingly to what your authenticators would look up. So for the session authenticator you configure a user for the session, and that's all.
# May 12th 2021, 18:23 thomas078 hmm. It is probably that $user = $this->Users->get($this->request->getAttribute('identity')->getIdentifier()); on that dashboard cannot read that Session. Should $this->Authentication->setIdentity($user); in the tests?
# May 12th 2021, 18:14 thomas078 when using that session based, will get ```App\Test\TestCase\Controller\UsersControllerTest::testDashboard Possibly related to Authorization\Exception\AuthorizationRequiredException: "The request to `/users/dashboard` did not apply any authorization checks." ```
# May 12th 2021, 18:11 thomas078 How to login user when testing? ``` protected function login($userId = 3) { $users = TableRegistry::getTableLocator()->get('Users'); $user = $users->get($userId); #$this->session(['Auth' => $user]); //does not work?? $this->Authentication->setIdentity($user); //Gives error. Notice Error: Undefined property: App\Test\TestCase\Controller\UsersControllerTest::$Authentication }```
# May 12th 2021, 18:05 admad https://github.com/42wim/matterbridge
# May 12th 2021, 18:04 virtudavi99 I'm not seeing anywhere in Slack to disable "Your team is working in Slack" email notifications for the channel.
# May 12th 2021, 18:04 virtudavi99 How are they bridged?
# May 12th 2021, 18:03 virtudavi99 I'm just posting what I did to see if I missed the solution.
# May 12th 2021, 18:03 thomas078 Actually did not get it to work...
# May 12th 2021, 17:44 slackebot Basically you just set it to a pseudo-random value and it'll be used in your hashes (along with an actual salt) and to encrypt and decrypt data using the `Cake/Utility/Security` class as well as being used to generate a pseudo-random CSRF token (again, along with an actual salt). You can read more about it here: https://en.wikipedia.org/wiki/Pepper_(cryptography)