my %errors;
my $nopassword = $req->cfg->entry('site users', 'nopassword', 0);
my @cols = grep !$donttouch{$_}, SiteUser->columns;
- for my $col (@cols) {
+ my $custom = custom_class($cfg);
+ my @required = $custom->siteuser_edit_required($req, $user);
+ for my $col (@required) {
my $value = $cgi->param($col);
- if ($cfg->entryBool('site users', "require_$col")) {
- if (defined $value && $value eq '') {
- my $disp = $cfg->entry('site users', "display_$col", "\u$col");
- $errors{$col} = "$disp is a required field";
- }
+ if (defined $value && $value eq '') {
+ my $disp = $cfg->entry('site users', "display_$col", "\u$col");
+ $errors{$col} = "$disp is a required field";
}
}
my $saveemail;
my $email = $cgi->param('email');
- if (defined $email && $email ne $user->{email}) {
- if (!$email) {
- $errors{email} = "Email is a required field";
- }
- elsif ($email !~ /.\@./) {
+ if (defined $email && $email ne $user->{email} && $email ne '') {
+ if ($email !~ /.\@./) {
$errors{email} = "Email is invalid";
}
unless ($errors{email}) {
$user{$field} = '';
}
+ my $custom = custom_class($cfg);
+ my @required = $custom->siteuser_add_required($req);
+
my $nopassword = $cfg->entryBool('site users', 'nopassword', 0);
my %errors;
my $email = $cgi->param('email');
'select * from site_users where id = ?',
getSiteUserByAffiliate_name =>
'select * from site_users where affiliate_name = ?',
- addSiteUser => 'insert site_users values(null,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
- replaceSiteUser => 'replace site_users values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+ addSiteUser => 'insert site_users values(null,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+ replaceSiteUser => 'replace site_users values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
'SiteUsers.removeSubscriptions'=>
'delete from subscribed_users where userId = ?',
'SiteUsers.removeSub'=>