[Catalyst] Controller::ActionRole and Controller::FormFu
Peter Shangov
pshangov at yahoo.com
Wed May 25 09:17:04 GMT 2011
Hi Tobias,
You cannot use Controller::FormFu together with Controller::ActionRole - both inherit from Catalyst::Controller and attempting to inherit from both of them creates a mess.
C::FF is just sugar over ordinary HTML::FormFu syntax. The C::FF docs explain exactly what 'FormConfig' and the other attributes do, so you should use that extended syntax instead, i.e.:
sub settings :
Chained('base')
Args(0)
Does(ACL)
RequiresRole('some-role')
ACLDetachTo('/permission_denied')
{
my ($self, $c) = @_;
my $form = HTML::FormFu->new;
$form->load_config_filestem('root/forms/settings');
...
}
Ideally C::FF will be implemented as an action role in the future, but this has not been done yet.
Cheers,
--
Peter
--- On Tue, 24/5/11, Tobias Klug <tklug at hartle-klug.de> wrote:
> From: Tobias Klug <tklug at hartle-klug.de>
> Subject: [Catalyst] Controller::ActionRole and Controller::FormFu
> To: "The elegant MVC web framework" <catalyst at lists.scsys.co.uk>
> Date: Tuesday, 24 May, 2011, 14:07
> Hi,
>
> I just started using Catalyst::Controller::ActionRole to
> make
> authorization within my application more consistent.
> However, in
> controllers that use FormFu for form handling, it does not
> work as
> expected. As I am no expert in Moose-stuff, I wanted to ask
> if I am
> doing the right thing.
>
> As the controller needs to inherit from ActionRole and
> FormFu, I wrote
> the following, which is possible according to the Moose
> manual:
>
> use Moose;
> BEGIN { extends 'Catalyst::Controller::ActionRole',
> 'Catalyst::Controller::HTML::FormFu' };
>
> The form action is declared like this:
>
> sub settings :
> Chained('base')
> Args(0)
>
> Does(ACL)
> RequiresRole('some-role')
>
> ACLDetachTo('/permission_denied')
>
> FormConfig
> {
> my ($self, $c) = @_;
> ...
> }
>
> However, depending on the order of the arguments of
> 'extends' either the
> forms are working or authorization, but never both.
>
> Is there a way to get both modules work together in the
> same
> controller/action?
>
> Best regards,
>
> Tobias
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
More information about the Catalyst
mailing list