Update of /cvs/scoop/scoop/lib/Scoop/Users
In directory sodium.sabren.com:/tmp/cvs-serv14523/lib/Scoop/Users
Modified Files:
NewUser.pm Prefs.pm
Log Message:
Fixes for userprefs (and comment post form) and some patented rusty
"wouldn't it be cool if" features for userprefs.
-janra
Index: NewUser.pm
===================================================================
RCS file: /cvs/scoop/scoop/lib/Scoop/Users/NewUser.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** NewUser.pm 4 Aug 2004 21:49:48 -0000 1.1
--- NewUser.pm 17 Aug 2004 19:03:41 -0000 1.2
***************
*** 39,43 ****
my $new_user_page = '';
! my $required_prefs = '';
my $really_new_user = ( $S->{GID} eq 'Anonymous' ? 1 : 0 );
--- 39,43 ----
my $new_user_page = '';
! my $signup_prefs = '';
my $really_new_user = ( $S->{GID} eq 'Anonymous' ? 1 : 0 );
***************
*** 52,56 ****
$new_user_page .= $S->{UI}->{BLOCKS}->{new_user_html};
! # get required prefs
my $user = $S->user_data($S->{UID});
my @prefs = $S->_required_pref_list($user);
--- 52,56 ----
$new_user_page .= $S->{UI}->{BLOCKS}->{new_user_html};
! # get prefs shown on newuser form
my $user = $S->user_data($S->{UID});
my @prefs = $S->_required_pref_list($user);
***************
*** 65,83 ****
'title' => $current->{title},
'description' => $current->{description},
'allowed_html' => $allowed_html };
$preftemplate = $S->interpolate($preftemplate,$keys);
$preftemplate =~ s/%%value%%/$prefvalue/;
! $required_prefs .= $preftemplate;
}
} elsif( !$is_advertiser ) {
! $new_user_page .= $S->{UI}->{BLOCKS}->{new_user_has_account};
! $no_create = 1;
} elsif( $is_advertiser && $S->{GID} eq $S->{UI}->{VARS}->{advertiser_group} ) {
! $new_user_page .= $S->{UI}->{BLOCKS}->{new_advertiser_has_account};
! $no_create = 1;
} elsif( $is_advertiser ) {
--- 65,84 ----
'title' => $current->{title},
'description' => $current->{description},
+ 'required' => ($current->{signup} eq 'required') ? $S->{UI}->{BLOCKS}->{required_pref_marker} : '',
'allowed_html' => $allowed_html };
$preftemplate = $S->interpolate($preftemplate,$keys);
$preftemplate =~ s/%%value%%/$prefvalue/;
! $signup_prefs .= $preftemplate;
}
} elsif( !$is_advertiser ) {
! $new_user_page .= $S->{UI}->{BLOCKS}->{new_user_has_account};
! $no_create = 1;
} elsif( $is_advertiser && $S->{GID} eq $S->{UI}->{VARS}->{advertiser_group} ) {
! $new_user_page .= $S->{UI}->{BLOCKS}->{new_advertiser_has_account};
! $no_create = 1;
} elsif( $is_advertiser ) {
***************
*** 148,152 ****
$new_user_page =~ s/%%email%%/$email/g;
$new_user_page =~ s/%%formkey%%/$formkey/g;
! $new_user_page =~ s/%%required_prefs%%/$required_prefs/g;
--- 149,153 ----
$new_user_page =~ s/%%email%%/$email/g;
$new_user_page =~ s/%%formkey%%/$formkey/g;
! $new_user_page =~ s/%%signup_prefs%%/$signup_prefs/g;
Index: Prefs.pm
===================================================================
RCS file: /cvs/scoop/scoop/lib/Scoop/Users/Prefs.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Prefs.pm 4 Aug 2004 21:49:48 -0000 1.1
--- Prefs.pm 17 Aug 2004 19:03:41 -0000 1.2
***************
*** 93,97 ****
}
$message .= $S->_save_user_prefs($page, $uid, $nick) if ($write);
!
warn "(get_user_prefs) first login? $firstlogin" if $DEBUG;
if ($firstlogin) {
--- 93,97 ----
}
$message .= $S->_save_user_prefs($page, $uid, $nick) if ($write);
! $nick = $S->cgi->param('nick'); # in case the nickname was changed
warn "(get_user_prefs) first login? $firstlogin" if $DEBUG;
if ($firstlogin) {
***************
*** 166,170 ****
my $prefvalue = (defined($user->{prefs}->{$pref})) ? $user->{prefs}->{$pref} : $current->{default_value};
$prefvalue = $S->_filter_display($prefvalue);
! my $required = $current->{required} ? $S->{UI}->{BLOCKS}->{required_pref_marker} : '';
my $preftemplate = $S->{UI}->{BLOCKS}->{$current->{template}};
my $allowed_html = $S->html_checker->allowed_html_as_string('pref') if $current->{html};
--- 166,170 ----
my $prefvalue = (defined($user->{prefs}->{$pref})) ? $user->{prefs}->{$pref} : $current->{default_value};
$prefvalue = $S->_filter_display($prefvalue);
! my $required = $current->{signup} eq 'required' ? $S->{UI}->{BLOCKS}->{required_pref_marker} : '';
my $preftemplate = $S->{UI}->{BLOCKS}->{$current->{template}};
my $allowed_html = $S->html_checker->allowed_html_as_string('pref') if $current->{html};
***************
*** 273,287 ****
$return =~ s/, $//;
- # and update the rdf_channels table if the nickname was changed,
- # because it uses nick, not uid
- # this will have to get fixed someday
if ( $save{nickname} ) {
my ($rv2, $sth2) = $S->db_update({
WHAT => 'rdf_channels',
SET => "submittor = $save{nickname}",
! WHERE => "submittor = $nick"
});
$sth2->finish;
}
} else {
$return .= "Password incorrect";
--- 273,299 ----
$return =~ s/, $//;
if ( $save{nickname} ) {
+ # nickname has changed in db - better change it
+ # wherever else it's needed...
+ if ( $uid == $S->{UID} ) {
+ $S->{NICK} = $params{nickname};
+ # this is the current user...
+ }
+ $S->param->{nick} = $params{nickname};
+ # and if not, everything else that checks the
+ # cgi params should see the change too
+
+ # and update the rdf_channels table if the
+ # nickname was changed, because it uses nick,
+ # not uid
+ # this will have to get fixed someday
my ($rv2, $sth2) = $S->db_update({
WHAT => 'rdf_channels',
SET => "submittor = $save{nickname}",
! WHERE => "submittor = '$nick'"
});
$sth2->finish;
}
+ delete($S->{USER_DATA_CACHE}->{$uid});
} else {
$return .= "Password incorrect";
***************
*** 325,329 ****
# check if it's required
warn "$pref is required? $pref_item->{required}" if $DEBUG;
! if ( $pref_item->{required} && !$value ) {
warn "$pref is required and blank - error" if $DEBUG;
return "<P>%%error_font%%$pref_item->{title} is a required field%%error_font_end%%</P>";
--- 337,341 ----
# check if it's required
warn "$pref is required? $pref_item->{required}" if $DEBUG;
! if ( $pref_item->{signup} eq 'required' && !$value ) {
warn "$pref is required and blank - error" if $DEBUG;
return "<P>%%error_font%%$pref_item->{title} is a required field%%error_font_end%%</P>";
***************
*** 441,448 ****
####
! # returns an array of preference names which are marked as "required"
! # ordered by the page they're on, then the display order field
! # Not sure why one would use this for anything other than the new user page
! # but hey, it could happen. All perm/etc checks still done.
####
--- 453,460 ----
####
! # returns an array of preference names which are marked as shown on the newuser
! # page ordered by the page they're on, then the display order field Not sure
! # why one would use this for anything other than the new user page but hey, it
! # could happen. All perm/etc checks still done.
####
***************
*** 453,459 ****
my ($rv, $sth) = $S->db_select({
WHAT => 'prefname',
FROM => 'pref_items',
! WHERE => 'required = 1 AND enabled = 1',
ORDER_BY => 'display_order'
});
--- 465,472 ----
my ($rv, $sth) = $S->db_select({
+ DEBUG => $DEBUG,
WHAT => 'prefname',
FROM => 'pref_items',
! WHERE => q{signup IN ('required', 'signup') AND enabled = 1},
ORDER_BY => 'display_order'
});
***************
*** 464,467 ****
--- 477,481 ----
next if $S->{PREF_ITEMS}->{$pref}->{req_tu} && !( $user->{trustlev} == 2 || $S->have_perm('super_mojo',$user->{perm_group}) );
push @preflist, $pref;
+ warn "(_required_pref_list) adding $pref to list" if $DEBUG;
}
$sth->finish;