Re: [Catalyst] Need help inserting

2012-05-30 Thread Theodore Katseres
I'm not an expert but your check for existing user in the database should
be -find;
 -search will return a resultset unless there is an exception.

Also, you may want this instead.
my $user = $c-model('authdb::User')-create({ username = $username });
$user-create_related('user_roles', {role='1'});



On Wed, May 30, 2012 at 3:09 PM, Kenneth S Mclane ksmcl...@us.ibm.comwrote:

 I have my authentication working through the company LDAP server. I am
 attempting to check for the existence of the user in a sqlite table and add
 them and their role if they are not found. I do this during the login:

 if ($username  $password) {
 # Attempt to log the user in
 if ($c-authenticate({ username = $username,
password = $password,  } )) {
 # If successful, check the user table to see if they are there
 already
 if (! $c-model('authdb::User')-search( {
 'username' = $username }, {})) {
 # If not add the user to the user table
 and the default role to the UserRole table
 $c-model('authdb::User')-create({
 username = $username });

 $c-model('authid::User')-create_related('user_roles', {
 user = 'user.id',
 role = '1',
 });
 }
 # Then send them to the home page

 $c-response-redirect($c-uri_for($c-controller('Search')-action_for('search')));
 return;
 } else {
 # Set an error message
 $c-stash(error_msg = Bad username or password.);
 };
 } else {
 # Set an error message
 $c-stash(error_msg = Empty username or password.)
 unless ($c-user_exists);
 }

 # If either of above don't work out, send to the login page
 $c-stash(template = 'login.tt2');
 }

 I have a couple of things I'm having trouble with, the user doesn't get
 created, I'm not sure I'm doing this correctly. Plus I had a co-worker log
 into the app on my computer and it picked up the session ID from  the
 cookie. So I obviously need to do something about that, although normally
 anyone else would be logging in from a different system, right now it's in
 a vm on my computer.

 I know I'm getting closer, but I would appreciate some pointers to where
 I'm off here.
 ___
 List: Catalyst@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/




-- 
Ted Katseres
  ||=O=||
___
List: Catalyst@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/


Re: [Catalyst] Need help inserting

2012-05-30 Thread Kenneth S Mclane
Ok, that worked, thank you, new users are being created. I think the 
cookie thing is a non issue, now I need to feed the role column data into 
the session so I can check it for access control.

Regards



Kenneth McLane
 700 Locust St

Systems Compliance Services
 Dubuque, 52001-6838
I1OB
 USA
GTS Services Delivery
 

Phone:
+1-563-845-4674
 

Tie-Line:
946-4674
 

Mobile:
+1-563-940-7147
 

e-mail:
ksmcl...@us.ibm.com
 

Ideas come from everything -- Alfred Hitchcock
 
 




From:
Theodore Katseres ted...@gmail.com
To:
The elegant MVC web framework catalyst@lists.scsys.co.uk
Date:
05/30/2012 03:28 PM
Subject:
Re: [Catalyst] Need help inserting



I'm not an expert but your check for existing user in the database should 
be -find;
 -search will return a resultset unless there is an exception.

Also, you may want this instead.
my $user = $c-model('authdb::User')-create({ username = $username }); 
$user-create_related('user_roles', {role='1'});



On Wed, May 30, 2012 at 3:09 PM, Kenneth S Mclane ksmcl...@us.ibm.com 
wrote:
I have my authentication working through the company LDAP server. I am 
attempting to check for the existence of the user in a sqlite table and 
add them and their role if they are not found. I do this during the login: 


if ($username  $password) { 
# Attempt to log the user in 
if ($c-authenticate({ username = $username, 
   password = $password,  } )) { 
# If successful, check the user table to see if they are there 
already 
if (! $c-model('authdb::User')-search( { 
'username' = $username }, {})) { 
# If not add the user to the user table 
and the default role to the UserRole table 
$c-model('authdb::User')-create({ 
username = $username }); 

$c-model('authid::User')-create_related('user_roles', { 
user = 'user.id', 
role = '1', 
}); 
} 
# Then send them to the home page 

$c-response-redirect($c-uri_for($c-controller('Search')-action_for('search')));
 

return; 
} else { 
# Set an error message 
$c-stash(error_msg = Bad username or password.); 
}; 
} else { 
# Set an error message 
$c-stash(error_msg = Empty username or password.) 
unless ($c-user_exists); 
} 

# If either of above don't work out, send to the login page 
$c-stash(template = 'login.tt2'); 
} 

I have a couple of things I'm having trouble with, the user doesn't get 
created, I'm not sure I'm doing this correctly. Plus I had a co-worker log 
into the app on my computer and it picked up the session ID from  the 
cookie. So I obviously need to do something about that, although normally 
anyone else would be logging in from a different system, right now it's in 
a vm on my computer.

I know I'm getting closer, but I would appreciate some pointers to where 
I'm off here.
___
List: Catalyst@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/




-- 
Ted Katseres
  ||=O=||___
List: Catalyst@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/


image/gif___
List: Catalyst@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/