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

svn at pti.co.il svn at pti.co.il
Sat Jul 21 18:22:21 EEST 2007


Author: gabor
Date: 2007-07-21 18:22:21 +0300 (Sat, 21 Jul 2007)
New Revision: 291

Modified:
   trunk/
   trunk/lib/CPAN/Forum/DB/UserInGroup.pm
   trunk/lib/CPAN/Forum/DB/Usergroups.pm
   trunk/lib/CPAN/Forum/RM/Login.pm
Log:
checking if user is in the admin group is now done using plain SQL



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

Modified: trunk/lib/CPAN/Forum/DB/UserInGroup.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/UserInGroup.pm	2007-07-21 15:21:51 UTC (rev 290)
+++ trunk/lib/CPAN/Forum/DB/UserInGroup.pm	2007-07-21 15:22:21 UTC (rev 291)
@@ -6,9 +6,6 @@
 __PACKAGE__->table('user_in_group');
 __PACKAGE__->columns(All => qw/uid gid/);
 
-#__PACKAGE__->has_many(users => "CPAN::Forum::DB::Users");
-#__PACKAGE__->has_many(groups => "CPAN::Forum::DB::Usergroups");
 
-
 1;
 

Modified: trunk/lib/CPAN/Forum/DB/Usergroups.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Usergroups.pm	2007-07-21 15:21:51 UTC (rev 290)
+++ trunk/lib/CPAN/Forum/DB/Usergroups.pm	2007-07-21 15:22:21 UTC (rev 291)
@@ -1,16 +1,21 @@
 package CPAN::Forum::DB::Usergroups;
 use strict;
 use warnings;
-use Carp;
 use base 'CPAN::Forum::DBI';
-__PACKAGE__->table('usergroups');
-__PACKAGE__->columns(All => qw/id name/);
+#__PACKAGE__->table('usergroups');
+#__PACKAGE__->columns(All => qw/id name/);
 
-__PACKAGE__->set_sql(ugs => "SELECT __ESSENTIAL__ FROM __TABLE__, user_in_group
-                             WHERE 
-                               user_in_group.uid = ? AND
-                               user_in_group.gid=usergroups.id
-                            ");
+sub is_admin {
+    my ($self, $id) = @_;
 
+    my $sql = "SELECT id FROM usergroups, user_in_group
+               WHERE 
+               usergroups.name='admin' AND
+               user_in_group.uid = ? AND
+               user_in_group.gid=usergroups.id
+               ";
+    $self->_fetch_single_value($sql, $id);
+}
+
 1;
 

Modified: trunk/lib/CPAN/Forum/RM/Login.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Login.pm	2007-07-21 15:21:51 UTC (rev 290)
+++ trunk/lib/CPAN/Forum/RM/Login.pm	2007-07-21 15:22:21 UTC (rev 291)
@@ -58,11 +58,8 @@
     $session->param(fname     => $user->{fname});
     $session->param(lname     => $user->{lname});
     $session->param(email     => $user->{email});
-    foreach my $g (CPAN::Forum::DB::Usergroups->search_ugs($user->{id})) {
-        $self->log->debug("UserGroups: " . $g->name);
-        if ($g->name eq "admin") {
-            $session->param(admin     => 1);
-        }
+    if (CPAN::Forum::DB::Usergroups->is_admin($user->{id})) { # SQL
+        $session->param(admin     => 1);
     }
 
     my $request = $session->param("request") || "home";



More information about the Cpan-forum-commit mailing list