webgui/lib/WebGUI/Account/User.pm

144 lines
3.3 KiB
Perl

package WebGUI::Account::User;
use strict;
use WebGUI::Exception;
use WebGUI::International;
use WebGUI::Pluggable;
use WebGUI::Operation::Auth;
use base qw/WebGUI::Account/;
=head1 NAME
Package WebGUI::Account::User
=head1 DESCRIPTION
This is the class which is used to display a users's account details
=head1 SYNOPSIS
use WebGUI::Account::User;
=head1 METHODS
These subroutines are available from this package:
=cut
#-------------------------------------------------------------------
=head2 canView ( )
Returns whether or not the user can view the inbox tab
=cut
sub canView {
my $self = shift;
return ($self->uid eq "");
}
#-------------------------------------------------------------------
=head2 editSettingsForm ( )
Creates form elements for user settings page custom to this account module
=cut
sub editSettingsForm {
my $self = shift;
my $session = $self->session;
my $setting = $session->setting;
my $i18n = WebGUI::International->new($session,'Account_User');
my $f = WebGUI::FormBuilder->new($session);
$f->addField( "template",
name => "userAccountStyleTemplateId",
value => $self->getStyleTemplateId,
namespace => "style",
label => $i18n->get("user style template label"),
hoverHelp => $i18n->get("user style template hoverHelp")
);
$f->addField( "template",
name => "userAccountLayoutTemplateId",
value => $self->getLayoutTemplateId,
namespace => "Account/Layout",
label => $i18n->get("user layout template label"),
hoverHelp => $i18n->get("user layout template hoverHelp")
);
$f->addField( "readOnly",
name => 'templateMessage',
value => $i18n->get("templates in auth method message"),
);
return $f;
}
#-------------------------------------------------------------------
=head2 editSettingsFormSave ( )
Creates form elements for user settings page custom to this account module
=cut
sub editSettingsFormSave {
my $self = shift;
my $session = $self->session;
my $setting = $session->setting;
my $form = $session->form;
$setting->set("userAccountStyleTemplateId", $form->process("userAccountStyleTemplateId","template"));
$setting->set("userAccountLayoutTemplateId", $form->process("userAccountLayoutTemplateId","template"));
}
#-------------------------------------------------------------------
=head2 getLayoutTemplateId ( )
This method returns the template ID for the account layout.
=cut
sub getLayoutTemplateId {
my $self = shift;
return $self->session->setting->get("userAccountLayoutTemplateId") || "9ThW278DWLV0-Svf68ljFQ";
}
#-------------------------------------------------------------------
=head2 getStyleTemplateId ( )
This method returns the template ID for the main style.
=cut
sub getStyleTemplateId {
my $self = shift;
return $self->session->setting->get("userAccountStyleTemplateId") || $self->SUPER::getStyleTemplateId;
}
#-------------------------------------------------------------------
=head2 www_view ( )
The main view page for editing the user's profile.
=cut
sub www_view {
my $self = shift;
my $session = $self->session;
my $auth = WebGUI::Operation::Auth::getInstance($session);
return $auth->displayAccount;
}
1;