/usr/local/CPAN/CGI-Portal/CGI/Portal/Controls/profile.pm
package CGI::Portal::Controls::profile;
# Copyright (c) 2008 Alexander David P. All rights reserved.
#
# Update user info
use strict;
use CGI::Portal::Scripts::profile;
use CGI::Portal::Scripts;
use vars qw(@ISA $VERSION);
$VERSION = "0.12";
@ISA = qw(CGI::Portal::Scripts);
my $r;
1;
sub launch {
my $self = shift;
# Authenticate
$self->authenticate_user();
if ($self->{'user'}){
# Validate
unless ($self->input_error("email")){
# Escape user
my $user = $self->{'rdb'}->escape($self->{'user'});
# Loop thru user fields and update
my $c = 0;
foreach my $f (@{$self->{'conf'}{'user_additional'}}) {
my $value = $self->{'rdb'}->escape($self->{'in'}{$f});
$self->{'rdb'}->exec("update $self->{'conf'}{'user_table'} set $f=$value where $self->{'conf'}{'user_user_field'}=$user");
$c++;
}
$self->{'tmpl_vars'}{'result'} = "Profile is updated.";
}
}
# Redirect
$self->CGI::Portal::Scripts::profile::launch();
return;
}
# Validate
sub input_error {
my ($self, @requireds) = @_;
my $input_error = 0;
# Loop thru requireds
foreach my $required (@requireds) {
if (!$self->{'in'}{$required}){
$self->{'tmpl_vars'}{"${required}_msg"} = "Field is required";
$input_error = 1;
}
}
if ($input_error) {
$self->{'tmpl_vars'}{'result'} = "Missing fields, no changes made.";
}
return $input_error;
}