[cgiapp] help with CAP::Authentication
Alex
capfan at gmx.de
Sun Aug 2 12:15:17 EDT 2009
Hi!
Understanding CAP::Auth could take a while :)
For your "even_more_protected" protection, you might want to use
CGI::Application::Plugin::Authorization. There, you can defined roles and
privileges for users / user groups / whatever you want.
A simple way would be to use two usergroups: users and admins.
Your usual protected stuff would be accessible by the user group and the
other more picky stuff will require the admin group. Finally, you assign a
user group to each user and you're done.
HTH, Alex
-----Original Message-----
From: cgiapp-bounces at lists.openlib.org
[mailto:cgiapp-bounces at lists.openlib.org] On Behalf Of P Kishor
Sent: Sonntag, 2. August 2009 17:49
To: CGI Application
Subject: [cgiapp] help with CAP::Authentication
I am trying to implement *and* understand CAP::Authentication. My questions
are --
1. How do I set (or unset) a bunch of session variables upon successful
login or on logout?
For example, right now I am using a POST_LOGIN_CALLBACK to set an 'is_admin'
bit like so
$self->authen->config(
..
POST_LOGIN_CALLBACK => \&account_update_session,
);
sub account_update_session {
my $self = shift;
if ($self->authen->is_authenticated) {
$self->session->param('is_admin', 0);
my $dbh = $self->dbh;
my $sth = $dbh->prepare(qq{
SELECT u.group_id
FROM users u JOIN groups g ON u.group_id = g.group_id
WHERE u.username = ?
});
$sth->execute($self->authen->username);
my ($group_id) = $sth->fetchrow_array;
if ($group_id == 1) {
$self->session->param('is_admin', 1);
}
}
}
The above works, but is it the right way to accomplish this? The 'is_admin'
bit is just one session var. I will likely have a few other session vars to
set and unset.
2. Once I have set 'is_admin', how do I protected some of the modes much
like
$self->authen->protected_runmodes(
'view',
'account_prefs',
'account_update',
'account_admin'
);
I would like to create something like so, logically speaking
$self->authen->even_more_protected_runmodes(
'account_admin'
);
--
Puneet Kishor
##### CGI::Application community mailing list ################
## ##
## To unsubscribe, or change your message delivery options, ##
## visit: http://lists.openlib.org/mailman/listinfo/cgiapp ##
## ##
## Web archive: http://lists.openlib.org/pipermail/cgiapp/ ##
## Wiki: http://cgiapp.erlbaum.net/ ##
## ##
################################################################
Eingehende eMail ist virenfrei.
Von AVG überprüft - www.avg.de
Version: 8.5.392 / Virendatenbank: 270.13.41/2277 - Ausgabedatum: 08/02/09
05:56:00
More information about the cgiapp
mailing list