[Cpan-forum-commit] rev 296 - in trunk: . lib/CPAN/Forum/DB lib/CPAN/Forum/RM templates

svn at pti.co.il svn at pti.co.il
Sun Jul 22 07:03:13 EEST 2007


Author: gabor
Date: 2007-07-22 07:03:13 +0300 (Sun, 22 Jul 2007)
New Revision: 296

Modified:
   trunk/
   trunk/lib/CPAN/Forum/DB/Users.pm
   trunk/lib/CPAN/Forum/RM/Admin.pm
   trunk/templates/notes.tmpl
Log:
update user e-mail by admin is now using plain SQL



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4303
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
   + 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4304
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752

Modified: trunk/lib/CPAN/Forum/DB/Users.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Users.pm	2007-07-22 04:02:53 UTC (rev 295)
+++ trunk/lib/CPAN/Forum/DB/Users.pm	2007-07-22 04:03:13 UTC (rev 296)
@@ -63,14 +63,18 @@
 
 sub update {
     my ($self, $id, %args) = @_;
-    my @valid_fields = qw(fname lname password);
+    my @valid_fields = qw(fname lname password email);
     my @fields;
     my @values;
 
     foreach my $f (@valid_fields) {
         if (exists $args{$f}) {
             push @fields, "$f=?";
-            push @values, $args{$f};
+            if ($f eq 'email') {
+                push @values, lc $args{$f};
+            } else {
+                push @values, $args{$f};
+            }
         }
     }
 

Modified: trunk/lib/CPAN/Forum/RM/Admin.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Admin.pm	2007-07-22 04:02:53 UTC (rev 295)
+++ trunk/lib/CPAN/Forum/RM/Admin.pm	2007-07-22 04:03:13 UTC (rev 296)
@@ -12,14 +12,18 @@
     my $uid   = $q->param('uid'); # TODO error checking here !
 
     $self->log->debug("admin_edit_user_process uid: '$uid'");
-    my ($person) = CPAN::Forum::DB::Users->retrieve($uid);
+    my $person = CPAN::Forum::DB::Users->info_by(id => $uid); # SQL
     if (not $person) {
         return $self->internal_error("", "no_such_user");
     }
-    $person->email($email);
-    $person->update;
+    eval {
+        my $person = CPAN::Forum::DB::Users->update($uid, email => lc $email); #SQL
+    };
+    if ($@ =~ /column email is not unique/) {
+        return $self->notes("duplicate_email");
+    }
 
-    $self->admin_edit_user($person->username, ['done']);
+    $self->admin_edit_user($person->{username}, ['done']);
 }
 
 sub admin_edit_user {

Modified: trunk/templates/notes.tmpl
===================================================================
--- trunk/templates/notes.tmpl	2007-07-22 04:02:53 UTC (rev 295)
+++ trunk/templates/notes.tmpl	2007-07-22 04:03:13 UTC (rev 296)
@@ -50,5 +50,10 @@
 <TMPL_INCLUDE NAME="search_form.tmpl">
 </TMPL_IF>
 
+<TMPL_IF duplicate_email>
+This e-mail already exists in our database. If this is really your e-mail address 
+you can retrieve your password using the <a href="/">password reminder</a>
+</TMPL_IF>
+
 <TMPL_INCLUDE NAME="footer.tmpl">
 



More information about the Cpan-forum-commit mailing list