afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-08-29 01:10 pm

[dw-free] privilege function cleanup

[commit: http://hg.dwscoalition.org/dw-free/rev/051ef3de84ec]

http://bugs.dwscoalition.org/show_bug.cgi?id=1525

Migrate LJ::check_priv to $u->check_priv; remove redundant checks for (priv,
"*"); style compliance.

Patch by [personal profile] kareila.

Files modified:
  • bin/upgrading/make_system.pl
  • cgi-bin/LJ/Console/Command/AllowOpenProxy.pm
  • cgi-bin/LJ/Console/Command/BanList.pm
  • cgi-bin/LJ/Console/Command/ChangeCommunityAdmin.pm
  • cgi-bin/LJ/Console/Command/ChangeJournalStatus.pm
  • cgi-bin/LJ/Console/Command/ChangeJournalType.pm
  • cgi-bin/LJ/Console/Command/Comment.pm
  • cgi-bin/LJ/Console/Command/Community.pm
  • cgi-bin/LJ/Console/Command/EmailAlias.pm
  • cgi-bin/LJ/Console/Command/Entry.pm
  • cgi-bin/LJ/Console/Command/ExpungeUserpic.pm
  • cgi-bin/LJ/Console/Command/FaqCat.pm
  • cgi-bin/LJ/Console/Command/FindUserCluster.pm
  • cgi-bin/LJ/Console/Command/Finduser.pm
  • cgi-bin/LJ/Console/Command/GetMaintainer.pm
  • cgi-bin/LJ/Console/Command/GetModerator.pm
  • cgi-bin/LJ/Console/Command/Infohistory.pm
  • cgi-bin/LJ/Console/Command/MakeInvites.pm
  • cgi-bin/LJ/Console/Command/MoodthemePublic.pm
  • cgi-bin/LJ/Console/Command/Priv.pm
  • cgi-bin/LJ/Console/Command/PrivPackage.pm
  • cgi-bin/LJ/Console/Command/ResetEmail.pm
  • cgi-bin/LJ/Console/Command/ResetPassword.pm
  • cgi-bin/LJ/Console/Command/Set.pm
  • cgi-bin/LJ/Console/Command/SetBadpassword.pm
  • cgi-bin/LJ/Console/Command/Suspend.pm
  • cgi-bin/LJ/Console/Command/SynEdit.pm
  • cgi-bin/LJ/Console/Command/SynMerge.pm
  • cgi-bin/LJ/Console/Command/SysbanAdd.pm
  • cgi-bin/LJ/Console/Command/Unsuspend.pm
  • cgi-bin/LJ/Entry.pm
  • cgi-bin/LJ/S2/DayPage.pm
  • cgi-bin/LJ/S2/EntryPage.pm
  • cgi-bin/LJ/S2/MonthPage.pm
  • cgi-bin/LJ/S2/RecentPage.pm
  • cgi-bin/LJ/SynSuck.pm
  • cgi-bin/LJ/User.pm
  • cgi-bin/supportlib.pl
  • htdocs/admin/capedit.bml
  • htdocs/admin/clusterstatus.bml
  • htdocs/admin/dupkiller.bml
  • htdocs/admin/entryprops.bml
  • htdocs/admin/faq/faqedit.bml
  • htdocs/admin/faq/index.bml
  • htdocs/admin/fileedit/index.bml
  • htdocs/admin/index.bml
  • htdocs/admin/invitecodes.bml
  • htdocs/admin/invites/distribute.bml
  • htdocs/admin/invites/requests.bml
  • htdocs/admin/invites/review.bml
  • htdocs/admin/logout_user.bml
  • htdocs/admin/memcache.bml
  • htdocs/admin/memcache_view.bml
  • htdocs/admin/mysql_status.bml
  • htdocs/admin/navtag.bml
  • htdocs/admin/pay/import.bml
  • htdocs/admin/pay/index.bml
  • htdocs/admin/pay/view.bml
  • htdocs/admin/priv/index.bml
  • htdocs/admin/propedit.bml
  • htdocs/admin/qotd/add.bml
  • htdocs/admin/qotd/manage.bml
  • htdocs/admin/recent_comments.bml
  • htdocs/admin/schema/index.bml
  • htdocs/admin/schools/edit.bml
  • htdocs/admin/schools/merge.bml
  • htdocs/admin/schools/pending.bml
  • htdocs/admin/schools/rename.bml
  • htdocs/admin/sitemessages/add.bml
  • htdocs/admin/sitemessages/manage.bml
  • htdocs/admin/spamreports.bml
  • htdocs/admin/stats.bml
  • htdocs/admin/statushistory.bml
  • htdocs/admin/sysban.bml
  • htdocs/admin/userlog.bml
  • htdocs/allpics.bml
  • htdocs/community/settings.bml
  • htdocs/customize/advanced/layerbrowse.bml
  • htdocs/customize/advanced/layers.bml
  • htdocs/customize/advanced/layersource.bml
  • htdocs/customize/advanced/styles.bml
  • htdocs/manage/logins.bml
  • htdocs/misc/entry_redirect.bml
  • htdocs/register.bml
  • htdocs/support/actmulti.bml
  • htdocs/support/faqbrowse.bml
  • htdocs/support/help.bml
  • htdocs/support/history.bml
  • htdocs/support/see_request.bml
  • htdocs/support/stock_answers.bml
  • htdocs/talkread.bml
  • htdocs/tools/recent_email.bml
  • htdocs/tools/recent_emailposts.bml
  • htdocs/translate/editpage.bml
  • htdocs/translate/search.bml
  • htdocs/userinfo.bml
  • htdocs/view/index.bml
  • t/console-priv.t
  • t/privs.t
--------------------------------------------------------------------------------
diff -r 585a9167642b -r 051ef3de84ec bin/upgrading/make_system.pl
--- a/bin/upgrading/make_system.pl	Sat Aug 29 12:54:41 2009 +0000
+++ b/bin/upgrading/make_system.pl	Sat Aug 29 13:08:42 2009 +0000
@@ -37,7 +37,7 @@ unless ($u) {
 }
 
 print "Giving 'system' account 'admin' priv on all areas...\n";
-if (LJ::check_priv($u, "admin", "*")) {
+if ( $u->has_priv( "admin", "*" ) ) {
     print "Already has it.\n";
 } else {
     my $sth = $dbh->prepare("INSERT INTO priv_map (userid, prlid, arg) ".
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/AllowOpenProxy.pm
--- a/cgi-bin/LJ/Console/Command/AllowOpenProxy.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/AllowOpenProxy.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<ip> [ <forever> ]' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "allowopenproxy");
+    return $remote ? $remote->has_priv( "allowopenproxy" ) : 0;
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/BanList.pm
--- a/cgi-bin/LJ/Console/Command/BanList.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/BanList.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -35,7 +35,7 @@ sub execute {
             unless $journal;
 
         return $self->error("You are not a maintainer of this account")
-            unless LJ::can_manage($remote, $journal) || LJ::check_priv($remote, "finduser");
+            unless LJ::can_manage( $remote, $journal ) || ( $remote && $remote->has_priv( "finduser" ) );
     }
 
     my $banids = LJ::load_rel_user($journal, 'B') || [];
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/ChangeCommunityAdmin.pm
--- a/cgi-bin/LJ/Console/Command/ChangeCommunityAdmin.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/ChangeCommunityAdmin.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<community> <new_owner>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "communityxfer");
+    return $remote && $remote->has_priv( "communityxfer" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/ChangeJournalStatus.pm
--- a/cgi-bin/LJ/Console/Command/ChangeJournalStatus.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/ChangeJournalStatus.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<account> <status>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "siteadmin", "users");
+    return $remote && $remote->has_priv( "siteadmin", "users" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/ChangeJournalType.pm
--- a/cgi-bin/LJ/Console/Command/ChangeJournalType.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/ChangeJournalType.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -19,7 +19,7 @@ sub usage { '<journal> <type> <owner> [f
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "changejournaltype") || $LJ::IS_DEV_SERVER;
+    return ( $remote && $remote->has_priv( "changejournaltype" ) ) || $LJ::IS_DEV_SERVER;
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Comment.pm
--- a/cgi-bin/LJ/Console/Command/Comment.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Comment.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<action> <url> <reason>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "deletetalk");
+    return $remote && $remote->has_priv( "deletetalk" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Community.pm
--- a/cgi-bin/LJ/Console/Command/Community.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Community.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -40,7 +40,7 @@ sub execute {
     return $self->error("Unknown user: $user")
         unless $target;
 
-    my $can_add = LJ::can_manage($remote, $comm) || LJ::check_priv($remote, "sharedjournal", "*");
+    my $can_add = LJ::can_manage( $remote, $comm ) || ( $remote && $remote->has_priv( "sharedjournal", "*" ) );
     my $can_remove = $can_add || LJ::u_equals($remote, $target);
 
     return $self->error("You cannot add users to this community.")
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/EmailAlias.pm
--- a/cgi-bin/LJ/Console/Command/EmailAlias.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/EmailAlias.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<action> <alias> [ <value> 
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "reset_email");
+    return $remote && $remote->has_priv( "reset_email" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Entry.pm
--- a/cgi-bin/LJ/Console/Command/Entry.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Entry.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<action> <url> <reason>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "deletetalk");
+    return $remote && $remote->has_priv( "deletetalk" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/ExpungeUserpic.pm
--- a/cgi-bin/LJ/Console/Command/ExpungeUserpic.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/ExpungeUserpic.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -16,7 +16,7 @@ sub usage { '<url>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "siteadmin", "userpics");
+    return $remote && $remote->has_priv( "siteadmin", "userpics" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/FaqCat.pm
--- a/cgi-bin/LJ/Console/Command/FaqCat.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/FaqCat.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -66,7 +66,7 @@ sub execute {
     my $remote = LJ::get_remote();
     # anything from this point on requires a priv
     return $self->error("You are not authorized to run this command.")
-        unless LJ::check_priv($remote, "faqcat");
+        unless $remote && $remote->has_priv( "faqcat" );
 
     if ($command eq "delete") {
         my $catkey = shift @args;
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/FindUserCluster.pm
--- a/cgi-bin/LJ/Console/Command/FindUserCluster.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/FindUserCluster.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -16,7 +16,7 @@ sub usage { '<user>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "supportviewscreened") || LJ::check_priv($remote, "supporthelp");
+    return $remote && ( $remote->has_priv( "supportviewscreened" ) || $remote->has_priv( "supporthelp" ) );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Finduser.pm
--- a/cgi-bin/LJ/Console/Command/Finduser.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Finduser.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<criteria> <data>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "finduser");
+    return $remote && $remote->has_priv( "finduser" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/GetMaintainer.pm
--- a/cgi-bin/LJ/Console/Command/GetMaintainer.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/GetMaintainer.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -16,7 +16,7 @@ sub usage { '<user>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "finduser");
+    return $remote && $remote->has_priv( "finduser" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/GetModerator.pm
--- a/cgi-bin/LJ/Console/Command/GetModerator.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/GetModerator.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -16,7 +16,7 @@ sub usage { '<user>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "finduser");
+    return $remote && $remote->has_priv( "finduser" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Infohistory.pm
--- a/cgi-bin/LJ/Console/Command/Infohistory.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Infohistory.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -16,7 +16,7 @@ sub usage { '<user>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "finduser", "infohistory");
+    return $remote && $remote->has_priv( "finduser", "infohistory" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/MakeInvites.pm
--- a/cgi-bin/LJ/Console/Command/MakeInvites.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/MakeInvites.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -20,7 +20,7 @@ sub usage { '<username> <count> <reason>
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "payments");
+    return $remote && $remote->has_priv( "payments" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/MoodthemePublic.pm
--- a/cgi-bin/LJ/Console/Command/MoodthemePublic.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/MoodthemePublic.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<themeid> <setting>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "moodthememanager");
+    return $remote && $remote->has_priv( "moodthememanager" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Priv.pm
--- a/cgi-bin/LJ/Console/Command/Priv.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Priv.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<action> <privs> <usernames
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "admin") || $LJ::IS_DEV_SERVER;
+    return ( $remote && $remote->has_priv( "admin" ) ) || $LJ::IS_DEV_SERVER;
 }
 
 sub execute {
@@ -53,7 +53,7 @@ sub execute {
     my $remote = LJ::get_remote();
     foreach my $pair (@privs) {
         my ($priv, $arg) = @$pair;
-        unless (LJ::check_priv($remote, "admin", "$priv") || LJ::check_priv($remote, "admin", "$priv/$arg")) {
+        unless ( $remote && ( $remote->has_priv( "admin", "$priv" ) || $remote->has_priv( "admin", "$priv/$arg" ) ) ) {
             $self->error("You are not permitted to $action $priv:$arg");
             next;
         }
@@ -81,21 +81,21 @@ sub execute {
             my $shmsg;
             my $rv;
             if ($action eq "grant") {
-                if (LJ::check_priv($u, $priv, $arg)) {
+                if ( $u && $u->has_priv( $priv, $arg ) ) {
                     $self->error("$user already has $priv:$arg");
                     next;
                 }
                 $rv = $u->grant_priv($priv, $arg);
                 $shmsg = "Granting: '$priv' with arg '$arg'";
             } elsif ($action eq "revoke") {
-                unless (LJ::check_priv($u, $priv, $arg)) {
+                unless ( $u && $u->has_priv( $priv, $arg ) ) {
                     $self->error("$user does not have $priv:$arg");
                     next;
                 }
                 $rv = $u->revoke_priv($priv, $arg);
                 $shmsg = "Denying: '$priv' with arg '$arg'";
             } else {
-                unless (LJ::check_priv($u, $priv)) {
+                unless ( $u && $u->has_priv( $priv ) ) {
                     $self->error("$user does not have any $priv privs");
                     next;
                 }
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/PrivPackage.pm
--- a/cgi-bin/LJ/Console/Command/PrivPackage.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/PrivPackage.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<command> [ <package> [ <ar
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "admin");
+    return $remote && $remote->has_priv( "admin" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/ResetEmail.pm
--- a/cgi-bin/LJ/Console/Command/ResetEmail.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/ResetEmail.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<user> <value> <reason>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "reset_email");
+    return $remote && $remote->has_priv( "reset_email" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/ResetPassword.pm
--- a/cgi-bin/LJ/Console/Command/ResetPassword.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/ResetPassword.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<user> <reason>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "reset_password");
+    return $remote && $remote->has_priv( "reset_password" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Set.pm
--- a/cgi-bin/LJ/Console/Command/Set.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Set.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -39,7 +39,7 @@ sub execute {
         return $self->error("Invalid account: $name")
             unless $journal;
         return $self->error("You are not permitted to change this journal's settings.")
-            unless LJ::can_manage($remote, $journal) || LJ::check_priv($remote, "siteadmin", "propedit");
+            unless LJ::can_manage( $remote, $journal ) || ( $remote && $remote->has_priv( "siteadmin", "propedit" ) );
     }
 
     my ($key, $value) = @args;
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/SetBadpassword.pm
--- a/cgi-bin/LJ/Console/Command/SetBadpassword.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/SetBadpassword.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<user> <state> <reason>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "suspend");
+    return $remote && $remote->has_priv( "suspend" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Suspend.pm
--- a/cgi-bin/LJ/Console/Command/Suspend.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Suspend.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<username or email address 
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "suspend");
+    return $remote && $remote->has_priv( "suspend" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/SynEdit.pm
--- a/cgi-bin/LJ/Console/Command/SynEdit.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/SynEdit.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<user> <newurl>' }
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "syn_edit");
+    return $remote && $remote->has_priv( "syn_edit" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/SynMerge.pm
--- a/cgi-bin/LJ/Console/Command/SynMerge.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/SynMerge.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -18,7 +18,7 @@ sub usage { '<from_user> "to" <to_user> 
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "syn_edit");
+    return $remote && $remote->has_priv( "syn_edit" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/SysbanAdd.pm
--- a/cgi-bin/LJ/Console/Command/SysbanAdd.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/SysbanAdd.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -19,7 +19,7 @@ sub usage { '<what> <value> [ <days> ] [
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "sysban");
+    return $remote && $remote->has_priv( "sysban" );
 }
 
 sub execute {
@@ -30,7 +30,7 @@ sub execute {
 
     my $remote = LJ::get_remote();
     return $self->error("You cannot create these ban types")
-        unless LJ::check_priv($remote, "sysban", $what);
+        unless $remote && $remote->has_priv( "sysban", $what );
 
     my $err = LJ::sysban_validate($what, $value);
     return $self->error($err) if $err;
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Console/Command/Unsuspend.pm
--- a/cgi-bin/LJ/Console/Command/Unsuspend.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/Unsuspend.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -17,7 +17,7 @@ sub usage { '<username or email address 
 
 sub can_execute {
     my $remote = LJ::get_remote();
-    return LJ::check_priv($remote, "suspend");
+    return $remote && $remote->has_priv( "suspend" );
 }
 
 sub execute {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/Entry.pm
--- a/cgi-bin/LJ/Entry.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/Entry.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -732,9 +732,9 @@ sub visible_to
     return 0 unless $self->valid;
 
     my ($viewall, $viewsome) = (0, 0);
-    if ($canview) {
-        $viewall = LJ::check_priv($remote, 'canview', '*');
-        $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+    if ( LJ::isu( $remote ) && $canview ) {
+        $viewall = $remote->has_priv( 'canview', '*' );
+        $viewsome = $viewall || $remote->has_priv( 'canview', 'suspended' );
     }
 
     # can see anything with viewall
@@ -742,7 +742,7 @@ sub visible_to
 
     # can't see anything unless the journal is visible
     # unless you have viewsome. then, other restrictions apply
-    if (!$viewsome) {
+    unless ( $viewsome ) {
         return 0 if $self->journal->is_inactive;
 
         # can't see anything by suspended users
@@ -969,7 +969,7 @@ sub is_suspended_for {
     my $u = shift;
 
     return 0 unless $self->is_suspended;
-    return 0 if LJ::check_priv($u, 'canview', 'suspended');
+    return 0 if LJ::isu($u) && $u->has_priv( 'canview', 'suspended' );
     return 0 if LJ::isu($u) && $u->equals($self->poster);
     return 1;
 }
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/S2/DayPage.pm
--- a/cgi-bin/LJ/S2/DayPage.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/S2/DayPage.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -49,11 +49,11 @@ sub DayPage
     if ($remote) {
 
         # do they have the viewall priv?
-        if ($get->{'viewall'} && LJ::check_priv($remote, "canview", "suspended")) {
+        if ( $get->{viewall} && $remote->has_priv( "canview", "suspended" ) ) {
             LJ::statushistory_add($u->{'userid'}, $remote->{'userid'},
                                   "viewall", "day: $user, statusvis: $u->{'statusvis'}");
-            $viewall = LJ::check_priv($remote, 'canview', '*');
-            $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+            $viewall = $remote->has_priv( 'canview', '*' );
+            $viewsome = $viewall || $remote->has_priv( 'canview', 'suspended' );
         }
 
         if ($remote->{'userid'} == $u->{'userid'} || $viewall) {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/S2/EntryPage.pm
--- a/cgi-bin/LJ/S2/EntryPage.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/S2/EntryPage.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -19,11 +19,11 @@ sub EntryPage
 
     # setup viewall options
     my ($viewall, $viewsome) = (0, 0);
-    if ($get->{viewall} && LJ::check_priv($remote, 'canview', 'suspended')) {
+    if ( $get->{viewall} && $remote && $remote->has_priv( 'canview', 'suspended' ) ) {
         # we don't log here, as we don't know what entry we're viewing yet.  the logging
         # is done when we call EntryPage_entry below.
-        $viewall = LJ::check_priv($remote, 'canview', '*');
-        $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+        $viewall = $remote->has_priv( 'canview', '*' );
+        $viewsome = $viewall || $remote->has_priv( 'canview', 'suspended' );
     }
 
     my ($entry, $s2entry) = EntryPage_entry($u, $remote, $opts);
@@ -403,13 +403,13 @@ sub EntryPage_entry
     my $userlite_poster  = UserLite($pu);
 
     # do they have the viewall priv?
-    my $canview = $get->{'viewall'} && LJ::check_priv($remote, "canview");
+    my $canview = $get->{viewall} && $remote && $remote->has_priv( "canview" );
     my ($viewall, $viewsome) = (0, 0);
     if ($canview) {
         LJ::statushistory_add($u->{'userid'}, $remote->{'userid'},
                               "viewall", "entry: $u->{'user'}, itemid: $itemid, statusvis: $u->{'statusvis'}");
-        $viewall = LJ::check_priv($remote, 'canview', '*');
-        $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+        $viewall = $remote->has_priv( 'canview', '*' );
+        $viewsome = $viewall || $remote->has_priv( 'canview', 'suspended' );
     }
 
     # check using normal rules
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/S2/MonthPage.pm
--- a/cgi-bin/LJ/S2/MonthPage.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/S2/MonthPage.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -49,11 +49,11 @@ sub MonthPage
     if ($remote) {
 
         # do they have the viewall priv?
-        if ($get->{'viewall'} && LJ::check_priv($remote, "canview", "suspended")) {
+        if ( $get->{viewall} && $remote && $remote->has_priv( "canview", "suspended" ) ) {
             LJ::statushistory_add($u->{'userid'}, $remote->{'userid'},
                                   "viewall", "month: $user, statusvis: $u->{'statusvis'}");
-            $viewall = LJ::check_priv($remote, 'canview', '*');
-            $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+            $viewall = $remote->has_priv( 'canview', '*' );
+            $viewsome = $viewall || $remote->has_priv( 'canview', 'suspended' );
         }
 
         if ($remote->{'userid'} == $u->{'userid'} || $viewall) {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/S2/RecentPage.pm
--- a/cgi-bin/LJ/S2/RecentPage.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/S2/RecentPage.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -76,11 +76,11 @@ sub RecentPage
     # do they want to view all entries, regardless of security?
     my $viewall = 0;
     my $viewsome = 0;
-    if ($get->{'viewall'} && LJ::check_priv($remote, "canview", "suspended")) {
+    if ( $get->{viewall} && $remote && $remote->has_priv( "canview", "suspended" ) ) {
         LJ::statushistory_add($u->{'userid'}, $remote->{'userid'},
                               "viewall", "lastn: $user, statusvis: $u->{'statusvis'}");
-        $viewall = LJ::check_priv($remote, 'canview', '*');
-        $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+        $viewall = $remote->has_priv( 'canview', '*' );
+        $viewsome = $viewall || $remote->has_priv( 'canview', 'suspended' );
     }
 
     ## load the itemids
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/SynSuck.pm
--- a/cgi-bin/LJ/SynSuck.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/SynSuck.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -75,7 +75,7 @@ sub get_content {
     my ($content, $too_big);
     my $max_size = $LJ::SYNSUCK_MAX_SIZE || 150; # in kb
     my $syn_u = LJ::load_user($user);
-    if ($syn_u && LJ::check_priv($syn_u, "siteadmin", "largefeedsize")) {
+    if ( $syn_u && $syn_u->has_priv( "siteadmin", "largefeedsize" ) ) {
         $max_size = $LJ::SYNSUCK_LARGE_MAX_SIZE || 300; # in kb
     }
     my $res = eval {
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/LJ/User.pm	Sat Aug 29 13:08:42 2009 +0000
@@ -1605,9 +1605,10 @@ sub show_raw_errors {
     return 1 if $LJ::IS_DEV_SERVER;
     return 1 if $LJ::ENABLE_BETA_TOOLS;
 
-    return 1 if LJ::check_priv($u, "supporthelp");
-    return 1 if LJ::check_priv($u, "supportviewscreened");
-    return 1 if LJ::check_priv($u, "siteadmin");
+    return 0 unless LJ::isu( $u );
+    return 1 if $u->has_priv( "supporthelp" );
+    return 1 if $u->has_priv( "supportviewscreened" );
+    return 1 if $u->has_priv( "siteadmin" );
 
     return 0;
 }
@@ -4190,19 +4191,12 @@ sub set_password {
 ###  22. Priv-Related Functions
 
 
-sub has_priv {
-    my ( $u, $priv, $arg ) = @_;
-
-    # FIXME: migrate check_priv here and have users call this instead
-    return LJ::check_priv( $u, $priv, $arg );
-}
-
 sub grant_priv {
     my ($u, $priv, $arg) = @_;
     $arg ||= "";
     my $dbh = LJ::get_db_writer();
 
-    return 1 if LJ::check_priv($u, $priv, $arg);
+    return 1 if $u->has_priv( $priv, $arg );
 
     my $privid = $dbh->selectrow_array("SELECT prlid FROM priv_list".
                                        " WHERE privcode = ?", undef, $priv);
@@ -4216,12 +4210,41 @@ sub grant_priv {
     return 1;
 }
 
+sub has_priv {
+    my ( $u, $priv, $arg ) = @_;
+
+    LJ::load_user_privs($u, $priv)
+        unless $u->{'_privloaded'}->{$priv};
+
+    # no access if they don't have the priv
+    return 0 unless defined $u->{'_priv'}->{$priv};
+
+    # at this point we know they have the priv
+    return 1 unless defined $arg;
+
+    # check if they have the right arguments
+    return 1 if defined $u->{'_priv'}->{$priv}->{$arg};
+    return 1 if defined $u->{'_priv'}->{$priv}->{"*"};
+
+    # don't have the right argument
+    return 0;
+}
+
+sub priv_args
+{
+    my ( $u, $priv ) = @_;
+    return unless $priv && $u->has_priv( $priv );
+    # returns hash of form { arg => 1 }
+    return %{ $u->{'_priv'}->{$priv} };
+}
+
+
 sub revoke_priv {
     my ($u, $priv, $arg) = @_;
     $arg ||="";
     my $dbh = LJ::get_db_writer();
 
-    return 1 unless LJ::check_priv($u, $priv, $arg);
+    return 1 unless $u->has_priv( $priv, $arg );
 
     my $privid = $dbh->selectrow_array("SELECT prlid FROM priv_list".
                                        " WHERE privcode = ?", undef, $priv);
@@ -7492,45 +7515,6 @@ sub set_password {
 ###  22. Priv-Related Functions
 
 # <LJFUNC>
-# name: LJ::check_priv
-# des: Check to see if a user has a certain privilege.
-# info: Usually this is used to check the privs of a $remote user.
-#       See [func[LJ::get_remote]].  As such, a $u argument of undef
-#       is okay to pass: 0 will be returned, as an unknown user can't
-#       have any rights.
-# args: dbarg?, u, priv, arg?
-# des-priv: Priv name to check for (see [dbtable[priv_list]])
-# des-arg: Optional argument.  If defined, function only returns true
-#          when $remote has a priv of type $priv also with arg $arg, not
-#          just any priv of type $priv, which is the behavior without
-#          an $arg. Arg can be "*", for all args.
-# returns: boolean; true if user has privilege
-# </LJFUNC>
-sub check_priv
-{
-    &nodb;
-    my ($u, $priv, $arg) = @_;
-    return 0 unless $u;
-
-    LJ::load_user_privs($u, $priv)
-        unless $u->{'_privloaded'}->{$priv};
-
-    # no access if they don't have the priv
-    return 0 unless defined $u->{'_priv'}->{$priv};
-
-    # at this point we know they have the priv
-    return 1 unless defined $arg;
-
-    # check if they have the right arguments
-    return 1 if defined $u->{'_priv'}->{$priv}->{$arg};
-    return 1 if defined $u->{'_priv'}->{$priv}->{"*"};
-
-    # don't have the right argument
-    return 0;
-}
-
-
-# <LJFUNC>
 # name: LJ::load_user_privs
 # class:
 # des: loads all of the given privs for a given user into a hashref, inside
@@ -7594,7 +7578,7 @@ sub get_daycounts
         # do they have the viewall priv?
         my $r = eval { Apache->request; }; # web context
         my %getargs = $r->args if $r;
-        if (defined $getargs{'viewall'} and $getargs{'viewall'} eq '1' and LJ::check_priv($remote, 'canview', '*')) {
+        if ( defined $getargs{'viewall'} and $getargs{'viewall'} eq '1' and ( $remote && $remote->has_priv( 'canview', '*' ) ) ) {
             $viewall = 1;
             LJ::statushistory_add( $u->userid, $remote->userid,
                 "viewall", "calendar" );
@@ -8066,8 +8050,8 @@ sub make_journal
 
     }
 
-    unless ($geta->{'viewall'} && LJ::check_priv($remote, "canview", "suspended") ||
-            $opts->{'pathextra'} =~ m!/(\d+)/stylesheet$!) { # don't check style sheets
+    unless ( $geta->{'viewall'} && $remote && $remote->has_priv( "canview", "suspended" ) ||
+             $opts->{'pathextra'} =~ m!/(\d+)/stylesheet$! ) { # don't check style sheets
         if ( $u->is_deleted ) {
             my $warning;
 
@@ -8169,39 +8153,4 @@ sub add_friend    { confess 'LJ::add_fri
 sub add_friend    { confess 'LJ::add_friend has been deprecated.';    }
 sub remove_friend { confess 'LJ::remove_friend has been deprecated.'; }
 
-
-# <LJFUNC>
-# name: LJ::remote_has_priv
-# class:
-# des: Check to see if the given remote user has a certain privilege.
-# info: <strong>Deprecated</strong>.  You should
-#       use [func[LJ::load_user_privs]] + [func[LJ::check_priv]], instead.
-# FIXME: Check what calls this and kill it.
-# args:
-# des-:
-# returns:
-# </LJFUNC>
-sub remote_has_priv
-{
-    &nodb;
-    my $remote = shift;
-    my $privcode = shift;     # required.  priv code to check for.
-    my $ref = shift;  # optional, arrayref or hashref to populate
-    return 0 unless ($remote);
-
-    ### authentication done.  time to authorize...
-
-    my $dbr = LJ::get_db_reader();
-    my $sth = $dbr->prepare("SELECT pm.arg FROM priv_map pm, priv_list pl WHERE pm.prlid=pl.prlid AND pl.privcode=? AND pm.userid=?");
-    $sth->execute( $privcode, $remote->userid );
-
-    my $match = 0;
-    if (ref $ref eq "ARRAY") { @$ref = (); }
-    if (ref $ref eq "HASH") { %$ref = (); }
-    while (my ($arg) = $sth->fetchrow_array) {
-        $match++;
-        if (ref $ref eq "ARRAY") { push @$ref, $arg; }
-        if (ref $ref eq "HASH") { $ref->{$arg} = 1; }
-    }
-    return $match;
-}
+1;
diff -r 585a9167642b -r 051ef3de84ec cgi-bin/supportlib.pl
--- a/cgi-bin/supportlib.pl	Sat Aug 29 12:54:41 2009 +0000
+++ b/cgi-bin/supportlib.pl	Sat Aug 29 13:08:42 2009 +0000
@@ -87,7 +87,7 @@ sub has_any_support_priv {
     my $u = shift;
     return 0 unless $u;
     foreach my $support_priv (@SUPPORT_PRIVS) {
-        return 1 if LJ::check_priv($u, $support_priv);
+        return 1 if $u->has_priv( $support_priv );
     }
     return 0;
 }
@@ -152,10 +152,10 @@ sub can_see_helper
         if (can_help($sp, $remote)) {
             return 1;
         }
-        if (LJ::check_priv($remote, "supportviewinternal", $sp->{_cat}->{'catkey'})) {
+        if ( $remote && $remote->has_priv( "supportviewinternal", $sp->{_cat}->{'catkey'} ) ) {
             return 1;
         }
-        if (LJ::check_priv($remote, "supportviewscreened", $sp->{_cat}->{'catkey'})) {
+        if ( $remote && $remote->has_priv( "supportviewscreened", $sp->{_cat}->{'catkey'} ) ) {
             return 1;
         }
         return 0;
@@ -174,8 +174,8 @@ sub can_read_cat
 {
     my ($cat, $remote) = @_;
     return unless ($cat);
-    return ($cat->{'public_read'} ||
-            LJ::check_priv($remote, "supportread", $cat->{'catkey'}));
+    return ( $cat->{'public_read'} ||
+             ( $remote && $remote->has_priv( "supportread", $cat->{'catkey'} ) ) );
 }
 
 *can_bounce = \&can_close_cat;
@@ -185,8 +185,8 @@ sub can_close_cat
 sub can_close_cat
 {
     my ($sp, $remote) = @_;
-    return 1 if $sp->{_cat}->{public_read} && LJ::check_priv($remote, 'supportclose', '');
-    return 1 if LJ::check_priv($remote, 'supportclose', $sp->{_cat}->{catkey});
+    return 1 if $sp->{_cat}->{public_read} && $remote && $remote->has_priv( 'supportclose', '' );
+    return 1 if $remote && $remote->has_priv( 'supportclose', $sp->{_cat}->{catkey} );
     return 0;
 }
 
@@ -255,8 +255,8 @@ sub support_check_priv
     my ($sp, $remote, $priv) = @_;
     return 1 if can_help($sp, $remote);
     return 0 unless can_read_cat($sp->{_cat}, $remote);
-    return 1 if LJ::check_priv($remote, $priv, '') && $sp->{_cat}->{public_read};
-    return 1 if LJ::check_priv($remote, $priv, $sp->{_cat}->{catkey});
+    return 1 if $remote && $remote->has_priv( $priv, '' ) && $sp->{_cat}->{public_read};
+    return 1 if $remote && $remote->has_priv( $priv, $sp->{_cat}->{catkey} );
     return 0;
 }
 
@@ -266,7 +266,7 @@ sub can_read_internal
 {
     my ($sp, $remote) = @_;
     return 1 if LJ::Support::support_check_priv($sp, $remote, 'supportviewinternal');
-    return 1 if LJ::check_priv($remote, "supportread", $sp->{_cat}->{catkey}."+");
+    return 1 if $remote && $remote->has_priv( "supportread", $sp->{_cat}->{catkey} . "+" );
     return 0;
 }
 
@@ -299,13 +299,11 @@ sub can_help
 {
     my ($sp, $remote) = @_;
     if ($sp->{_cat}->{'public_read'}) {
-        if ($sp->{_cat}->{'public_help'}) {
-            return 1;
-        }
-        if (LJ::check_priv($remote, "supporthelp", "")) { return 1; }
+        return 1 if $sp->{_cat}->{'public_help'};
+        return 1 if $remote && $remote->has_priv( "supporthelp", "" );
     }
     my $catkey = $sp->{_cat}->{'catkey'};
-    if (LJ::check_priv($remote, "supporthelp", $catkey)) { return 1; }
+    return 1 if $remote && $remote->has_priv( "supporthelp", $catkey );
     return 0;
 }
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/capedit.bml
--- a/htdocs/admin/capedit.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/capedit.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -12,7 +12,7 @@
 
  return "<?needlogin?>" unless $remote;
  return BML::ml ( "admin.noprivserror", { numpriv => $numprivs, needprivs => "<b>"  . join(", ", @display_privs) . "</b>"} )
-   unless $LJ::IS_DEV_SERVER || LJ::check_priv($remote, "admin", "*");
+   unless $LJ::IS_DEV_SERVER || $remote->has_priv( "admin", "*" );
 
  $mode ||= $FORM{'user'} ? "viewuser" : "intro";
 
@@ -36,7 +36,7 @@
          unless (LJ::did_post());
 
      return"<b>Error:</b> You don't have access to change a user's capability class."
-         unless $LJ::IS_DEV_SERVER || LJ::check_priv($remote, "admin", "*");
+         unless $LJ::IS_DEV_SERVER || ( $remote && $remote->has_priv( "admin", "*" ) );
 
      unless ($u) {
          $ret .= "Unknown user.\n";
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/clusterstatus.bml
--- a/htdocs/admin/clusterstatus.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/clusterstatus.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -11,7 +11,7 @@ body<=
 
     return "<?needlogin?>" unless $remote;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join (", ", @display_privs) . "</b>" } )
-        unless LJ::check_priv($remote, "supporthelp");
+        unless $remote->has_priv( "supporthelp" );
 
     my $ret;
     foreach my $cid (@LJ::CLUSTERS) {
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/dupkiller.bml
--- a/htdocs/admin/dupkiller.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/dupkiller.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -12,7 +12,7 @@
 
     return "<?needlogin?>" unless $remote;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @display_privs) . "</b>"} )
-        unless LJ::check_priv($remote, "supporthelp");
+        unless $remote->has_priv( "supporthelp" );
 
     unless (LJ::did_post()) {
 	$ret .= "<h1>duplicate entry killer</h1>\n";
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/entryprops.bml
--- a/htdocs/admin/entryprops.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/entryprops.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -11,7 +11,7 @@ body<=
     my $numprivs = @display_privs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @display_privs) . "</b>"} )
-        unless $LJ::IS_DEV_SERVER || LJ::check_priv($remote, "canview", "entryprops");
+        unless $LJ::IS_DEV_SERVER || ( $remote && $remote->has_priv( "canview", "entryprops" ) );
 
     $ret .= "<form method='POST'>";
     $ret .= "View properties for URL: ";
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/faq/faqedit.bml
--- a/htdocs/admin/faq/faqedit.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/faq/faqedit.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -17,10 +17,7 @@ body<=
     my $ret = "";
 
     my $dbh = LJ::get_db_writer();
-
     my $remote = LJ::get_remote();
-    my %ac_edit;
-    my %ac_add;
 
     my @display_privs = ( "faqadd", "faqedit" );
     my $numprivs =  @display_privs;
@@ -28,10 +25,11 @@ body<=
     return "<?needlogin?>" unless $remote;
     
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @display_privs) . "</b>"} )
-        unless LJ::check_priv($remote, "faqadd") || LJ::check_priv($remote, "faqedit");
+        unless $remote->has_priv( "faqadd" ) || $remote->has_priv( "faqedit" );
 
-    LJ::remote_has_priv( $remote, "faqadd", \%ac_add );
-    LJ::remote_has_priv( $remote, "faqedit", \%ac_edit );
+    my %ac_add  = $remote->priv_args( "faqadd" );
+    my %ac_edit = $remote->priv_args( "faqedit" );
+
     my $faqd = LJ::Lang::get_dom( "faq" );
     my $rlang = LJ::Lang::get_root_lang( $faqd );
     my ( $faqcat, $sortorder, $question, $summary, $answer, $has_summary );
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/faq/index.bml
--- a/htdocs/admin/faq/index.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/faq/index.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -16,12 +16,10 @@ body<=
 
     return "<?needlogin?>" unless $remote;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @display_privs) . "</b>"} )
-        unless LJ::check_priv($remote, "faqadd") || LJ::check_priv($remote, "faqedit");
+        unless $remote->has_priv( "faqadd" ) || $remote->has_priv( "faqedit" );
 
-    my %ac_add;
-    my %ac_edit;
-    LJ::remote_has_priv( $remote, "faqadd", \%ac_add );
-    LJ::remote_has_priv( $remote, "faqedit", \%ac_edit );
+    my %ac_add  = $remote->priv_args( "faqadd" );
+    my %ac_edit = $remote->priv_args( "faqedit" );
 
     my $ret = "";
     $ret .= "<a href='faqedit'>[Add to FAQ]</a>\n"
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/fileedit/index.bml
--- a/htdocs/admin/fileedit/index.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/fileedit/index.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -9,13 +9,13 @@
  my @display_privs = ( "fileedit" );
  my $numprivs = @display_privs;
 
- my %files = ();  # keys: files remote user has access to, value: 1
  my $INC_DIR = $LJ::BML_INC_DIR_ADMIN || $LJ::BML_INC_DIR || "$LJ::HTDOCS/inc";
 
  return "<?needlogin?>" unless $remote;
  return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @display_privs) . "</b>"})
-     unless (LJ::remote_has_priv($remote, "fileedit", \%files));
- 
+     unless $remote->has_priv( "fileedit" );
+
+ my %files = $remote->priv_args( "fileedit" );
 
  my $valid_filename = sub 
  {
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/index.bml
--- a/htdocs/admin/index.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/index.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -113,7 +113,7 @@ body<=
 
     $ret .= "<ul>\n";
 
-    my $adminstar = LJ::check_priv( $remote, 'admin', '*' );
+    my $adminstar = $remote && $remote->has_priv( 'admin', '*' );
     foreach my $page ( @adminpages ) {
         my ( $path, $name, $description, $privs ) = @{$page};
         my $showpage = 0;
@@ -122,7 +122,7 @@ body<=
         foreach my $priv ( @{$privs} ) {
             my $result = ( ref( $priv ) eq "CODE" ?
                              ( $priv->() )[0] :
-                             LJ::check_priv( $remote, split( /:/, $priv ) ) );
+                             $remote && $remote->has_priv( split( /:/, $priv ) ) );
             my $displayedpriv = ( ref( $priv ) eq "CODE" ? ( $priv->() )[1] : $priv );
             push( @gotprivs,   $displayedpriv ) if $result;
             push( @needsprivs, $displayedpriv ) if !$result;
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/invitecodes.bml
--- a/htdocs/admin/invitecodes.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/invitecodes.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -16,7 +16,7 @@ body<=
         unless $remote;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv( $remote, "finduser", "codetrace" );    
+        unless $remote->has_priv( "finduser", "codetrace" );
 
     my $ret;
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/invites/distribute.bml
--- a/htdocs/admin/invites/distribute.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/invites/distribute.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -20,7 +20,7 @@ body<=
     return LJ::error_noremote() unless $remote;
 
     return BML::redirect( $LJ::SITEROOT )
-        unless LJ::check_priv( $remote, 'payments' );
+        unless $remote->has_priv( 'payments' );
 
     my $ret;
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/invites/requests.bml
--- a/htdocs/admin/invites/requests.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/invites/requests.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -22,7 +22,7 @@ body<=
     return "<?needlogin?>" unless $remote;
 
     return "You are not authorized to view this page."
-        unless LJ::check_priv( $remote, "payments" );
+        unless $remote->has_priv( "payments" );
 
     my $ret;
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/invites/review.bml
--- a/htdocs/admin/invites/review.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/invites/review.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -24,7 +24,7 @@ body<=
     return "<?needlogin?>" unless $remote;
 
     return "You are not authorized to view this page."
-        unless LJ::check_priv( $remote, "payments" );    
+        unless $remote->has_priv( "payments" );
 
     my $ret;
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/logout_user.bml
--- a/htdocs/admin/logout_user.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/logout_user.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -15,7 +15,7 @@ body<=
 
     return "<?needlogin?>" unless $remote;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'suspend');
+        unless $remote->has_priv( 'suspend' );
 
     my $ret = "";
     
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/memcache.bml
--- a/htdocs/admin/memcache.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/memcache.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -13,7 +13,7 @@
 
     return "<?needlogin?>" unless $u;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($u, "siteadmin", "memcacheview");
+        unless $u->has_priv( "siteadmin", "memcacheview" );
 
     my $prev_hits = $u ? LJ::MemCache::get([$u->{'userid'},"mcrate:$u->{'userid'}"]) : undef;
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/memcache_view.bml
--- a/htdocs/admin/memcache_view.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/memcache_view.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -15,7 +15,7 @@
 
  return "<?needlogin?>" unless $remote;
  return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-     unless (LJ::check_priv($remote, "siteadmin", "memcacheview") || $LJ::IS_DEV_SERVER);
+     unless $remote->has_priv( "siteadmin", "memcacheview" ) || $LJ::IS_DEV_SERVER;
 
  return "<b>Error:</b> No memcache servers defined."
      unless @LJ::MEMCACHE_SERVERS;
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/mysql_status.bml
--- a/htdocs/admin/mysql_status.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/mysql_status.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -8,7 +8,7 @@
 
  return "<?needlogin?>" unless $remote;
  return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-     unless (LJ::check_priv($remote, "siteadmin", "mysqlstatus"));
+     unless $remote->has_priv( "siteadmin", "mysqlstatus" );
 
  my $dbh = LJ::get_db_writer();
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/navtag.bml
--- a/htdocs/admin/navtag.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/navtag.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -19,7 +19,7 @@
     return "<?needlogin?>" unless $remote;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'siteadmin', 'navtag');
+        unless $remote->has_priv( 'siteadmin', 'navtag' );
 
     do "LJ/NavTag.pm";
     #use LJ::NavTag;
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/pay/import.bml
--- a/htdocs/admin/pay/import.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/pay/import.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -15,7 +15,7 @@
 
     return "<?needlogin?>" unless $remote;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'payments');
+        unless $remote->has_priv( 'payments' );
 
     my $body = '<h1>Payment Status Import Tool</h1>';
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/pay/index.bml
--- a/htdocs/admin/pay/index.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/pay/index.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -13,7 +13,7 @@
 
     return "<?needlogin?>" unless $remote; 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'payments');
+        unless $remote->has_priv( 'payments' );
 
     my $body = '<h1>Payment Manager</h1>';
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/pay/view.bml
--- a/htdocs/admin/pay/view.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/pay/view.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -13,7 +13,7 @@
 
     return "<?needlogin?>" unless $remote; 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'payments');
+        unless $remote->has_priv( 'payments' );
 
     # FIXME: there should be a better page for this or something
     if ( my $acid = $GET{striptimefrom} ) {
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/priv/index.bml
--- a/htdocs/admin/priv/index.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/priv/index.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -76,7 +76,8 @@
      my ($remote, $priv, $arg) = @_;
      return 0 unless defined $priv;
      return 1 if $LJ::DEBUG{"unrestricted_priv_grant"};
-     return LJ::check_priv($remote, 'admin', $priv) || LJ::check_priv($remote, 'admin', '*') || LJ::check_priv($remote, 'admin', "$priv/$arg");
+     return 0 unless LJ::isu( $remote );
+     return $remote->has_priv( 'admin', $priv ) || $remote->has_priv( 'admin', "$priv/$arg" );
  }
 
  if ($mode eq "userchange" || $mode eq "privchange")
@@ -118,7 +119,7 @@
 
              if ($privcode) {
                  if (remote_can_grant($remote, $privcode, $arg)) {
-                     if (LJ::check_priv($u, $privcode, $arg)) {
+                     if ( $u && $u->has_priv( $privcode, $arg ) ) {
                          $ret .= "ERROR: User already has specified priv <b>$privcode $arg</b>.<br />";
                      } else {
                          my $qarg = $dbh->quote($arg);
@@ -143,7 +144,7 @@
              my $privcode = $priv{$privid}->{'privcode'};
              if ($privcode) {
                  if (remote_can_grant($remote, $privcode, $arg)) {
-                     if (LJ::check_priv($u, $privcode, $arg)) {
+                     if ( $u && $u->has_priv( $privcode, $arg ) ) {
                          $ret .= "ERROR: User already has specified priv <b>$privcode $arg</b>.<br />";
                      }
                      elsif ($userid && $privid) {
@@ -215,7 +216,7 @@
      }
      $ret .= "</table>";
 
-     if (LJ::check_priv($remote, 'admin')) {
+     if ( $remote && $remote->has_priv( 'admin' ) ) {
          $ret .= "<p>Grant <b>$user</b> privilege:<div style='margin-left: 20px;'>\n";
          $ret .= "<select name='grantpriv'><option value='' selected='1'></option>";
          foreach my $priv (@privs) {
@@ -228,7 +229,7 @@
      }
 
      $ret .= "<p>\n";
-     if (LJ::check_priv($remote, 'admin')) {
+     if ( $remote && $remote->has_priv( 'admin') ) {
          $ret .=  "<input type=\"submit\" value=\"Make Changes\" />";
      }
      $ret .= " <input type=\"submit\" name=\"submit:refresh\" value=\"Just Refresh\" />";
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/propedit.bml
--- a/htdocs/admin/propedit.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/propedit.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -19,8 +19,8 @@ body<=
 
     my $temp;
     my $remote = LJ::get_remote();
-    my $is_admin = LJ::check_priv( $remote, "canview", "userprops" );
-    my $can_save = LJ::check_priv( $remote, "siteadmin", "propedit" );
+    my $is_admin = $remote && $remote->has_priv( "canview", "userprops" );
+    my $can_save = $remote && $remote->has_priv( "siteadmin", "propedit" );
 
     my @displayprivs = ( "canview:userprops", "canview:*" );
     my $numprivs = @displayprivs;
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/qotd/add.bml
--- a/htdocs/admin/qotd/add.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/qotd/add.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -14,7 +14,7 @@ body<=
         unless $remote;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'siteadmin', 'qotd') || $LJ::IS_DEV_SERVER;
+        unless $remote->has_priv( 'siteadmin', 'qotd' ) || $LJ::IS_DEV_SERVER;
 
     my $ret = "";
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/qotd/manage.bml
--- a/htdocs/admin/qotd/manage.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/qotd/manage.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -15,7 +15,7 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'siteadmin', 'qotd') || $LJ::IS_DEV_SERVER;
+        unless $remote && $remote->has_priv( 'siteadmin', 'qotd' ) || $LJ::IS_DEV_SERVER;
 
     my $ret = "";
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/recent_comments.bml
--- a/htdocs/admin/recent_comments.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/recent_comments.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -12,7 +12,7 @@
 
     return "<?needlogin?>" unless $remote;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, "siteadmin", "commentview");
+        unless $remote->has_priv( "siteadmin", "commentview" );
 
     my $user = $GET{'user'};
     my $u;
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/schema/index.bml
--- a/htdocs/admin/schema/index.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/schema/index.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -14,7 +14,7 @@ body<=
 
  return "<?needlogin?>" unless $remote;
  my $can_doc = 0;
- if (LJ::remote_has_priv($remote, "schemadoc")) { $can_doc = 1; }
+ $can_doc = 1 if $remote->has_priv( "schemadoc" );
  return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
      unless ($can_doc); 
  
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/schools/edit.bml
--- a/htdocs/admin/schools/edit.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/schools/edit.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -34,7 +34,7 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless (LJ::check_priv($remote, 'siteadmin', 'school'));
+        unless $remote && $remote->has_priv( 'siteadmin', 'school' );
 
     my $sid = LJ::did_post() ? $POST{sid} : $GET{sid};
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/schools/merge.bml
--- a/htdocs/admin/schools/merge.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/schools/merge.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -21,7 +21,7 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-       unless LJ::check_priv($remote, 'siteadmin', 'school');
+       unless $remote && $remote->has_priv( 'siteadmin', 'school' );
 
     $ret .= "<?p [ <a href='index'>&lt;&lt; Back to Admin Index</a> ] p?>";
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/schools/pending.bml
--- a/htdocs/admin/schools/pending.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/schools/pending.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -34,7 +34,7 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless (LJ::check_priv($remote, 'siteadmin', 'school'));
+        unless $remote && $remote->has_priv( 'siteadmin', 'school' );
 
     my $getextra = '';
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/schools/rename.bml
--- a/htdocs/admin/schools/rename.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/schools/rename.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -19,7 +19,7 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'siteadmin', 'school');
+        unless $remote && $remote->has_priv( 'siteadmin', 'school' );
 
     $ret .= "<?p [ <a href='index'>&lt;&lt; Back to Admin Index</a> ] p?>";
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/sitemessages/add.bml
--- a/htdocs/admin/sitemessages/add.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/sitemessages/add.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -14,7 +14,7 @@ body<=
     my @displayprivs = ( "siteadmin:sitemessages", "siteadmin:*" );
     my $numprivs = @displayprivs;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'siteadmin', 'sitemessages') || $LJ::IS_DEV_SERVER;
+        unless $remote && $remote->has_priv( 'siteadmin', 'sitemessages' ) || $LJ::IS_DEV_SERVER;
 
     my $ret = "";
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/sitemessages/manage.bml
--- a/htdocs/admin/sitemessages/manage.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/sitemessages/manage.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -15,7 +15,7 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'siteadmin', 'sitemessages') || $LJ::IS_DEV_SERVER;
+        unless $remote && $remote->has_priv( 'siteadmin', 'sitemessages' ) || $LJ::IS_DEV_SERVER;
 
     my $ret = "";
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/spamreports.bml
--- a/htdocs/admin/spamreports.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/spamreports.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -40,7 +40,7 @@
     my $numprivs = @displayprivs;
 
     return $error->(BML::ml("admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} ))
-        unless LJ::check_priv($remote, 'siteadmin', 'spamreports');
+        unless $remote && $remote->has_priv( 'siteadmin', 'spamreports' );
 
     # show the top 10 spam reports by IP
     my $mode = lc($GET{mode} || $POST{mode});
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/stats.bml
--- a/htdocs/admin/stats.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/stats.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -29,7 +29,7 @@ body<=
     my $numprivs = @display_privs;
 
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join( ", ", @display_privs ) . "</b>"} )
-        unless $LJ::IS_DEV_SERVER || LJ::check_priv( $remote, "payments" );
+        unless $LJ::IS_DEV_SERVER || ( $remote && $remote->has_priv( "payments" ) );
 
     my $ret;
     
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/statushistory.bml
--- a/htdocs/admin/statushistory.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/statushistory.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -15,7 +15,7 @@
 
     return "<?needlogin?>" unless $remote;
     return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless (LJ::check_priv($remote, "historyview") || $LJ::IS_DEV_SERVER);
+        unless $remote->has_priv( "historyview" ) || $LJ::IS_DEV_SERVER;
 
     my $ret;
 
@@ -89,8 +89,8 @@
     while (my $hist = $sth->fetchrow_hashref) {
         # see if they can see this item: either they have unarged historyview or
         # they have historyview:shtype
-        next unless LJ::check_priv($remote, 'historyview', '') ||
-                    LJ::check_priv($remote, 'historyview', $hist->{shtype});
+        next unless $remote && ( $remote->has_priv( 'historyview', '' ) ||
+                    $remote->has_priv( 'historyview', $hist->{shtype} ) );
 
         $ret .= "<tr>";
         foreach (qw(user admin shtype shdate notes)) {
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/sysban.bml
--- a/htdocs/admin/sysban.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/sysban.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -42,13 +42,10 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml("admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv( $remote, $priv );
+        unless $remote && $remote->has_priv( $priv );
 
-    LJ::load_user_privs($remote, $priv)
-        unless $remote->{'_privloaded'}->{$priv};
-    
     my @sysban_privs;
-    foreach my $arg ( keys %{ $remote->{'_priv'}->{$priv} } ) {
+    foreach my $arg ( keys $remote->priv_args( $priv ) ) {
         if ( $arg eq '*' ) {
             push @sysban_privs, @all_sb_args;
         } else {
@@ -208,8 +205,7 @@ FORM
 
         return $err->("No note field!") unless $note; 
         return $err->("You do not have the correct privileges") unless 
-            ( LJ::check_priv( $remote, $priv, '*' ) ||
-              LJ::check_priv( $remote, $priv, $bantype ) );
+            $remote && $remote->has_priv( $priv, $bantype );
 
         my $notvalid = LJ::sysban_validate( $bantype, $value );
         return $err->("Ban not valid: $notvalid") if $notvalid;
diff -r 585a9167642b -r 051ef3de84ec htdocs/admin/userlog.bml
--- a/htdocs/admin/userlog.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/admin/userlog.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -34,8 +34,7 @@ body<=
     my $numprivs = @displayprivs;
 
     return BML::ml("admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
-        unless LJ::check_priv($remote, 'canview', 'userlog') ||
-               LJ::check_priv($remote, 'canview', '*');
+        unless $remote && $remote->has_priv( 'canview', 'userlog' );
 
     my $user = LJ::canonical_username($POST{user} || $GET{user});
 
diff -r 585a9167642b -r 051ef3de84ec htdocs/allpics.bml
--- a/htdocs/allpics.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/allpics.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -50,7 +50,7 @@
 
     # no need for viewsome, due to the fact that none of this is private anyway.  just
     # allow anybody with any version of viewall to see userpics for non-V statusvis users
-    if ($GET{viewall} && LJ::check_priv($remote, 'canview', 'suspended')) {
+    if ( $GET{viewall} && $remote && $remote->has_priv( 'canview', 'suspended' ) ) {
         LJ::statushistory_add($u->{'userid'}, $remote->{'userid'},
                               "viewall", "allpics: $u->{'user'}, statusvis: " . $u->statusvis);
     } else {
@@ -120,8 +120,8 @@
     my $defaultpicid = $u ? $u->{'defaultpicid'} : undef;
 
     # allow support to view inactive userpics for debugging
-    my $view_inactive = $GET{inactive} && (LJ::check_priv($remote, "supportviewscreened") ||
-                                           LJ::check_priv($remote, "supporthelp"));
+    my $view_inactive = $GET{inactive} && $remote &&
+                        ( $remote->has_priv( "supportviewscreened" ) || $remote->has_priv( "supporthelp" ) );
     $view_inactive ||= $can_manage;
 
     push @allpics, $info->{'pic'}->{$u->{'defaultpicid'}} if $defaultpicid;
diff -r 585a9167642b -r 051ef3de84ec htdocs/community/settings.bml
--- a/htdocs/community/settings.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/community/settings.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -81,7 +81,7 @@ body<=
         }
 
         # disallow changing the journal type if the journal has entries
-        if ($mode eq 'create' && !%errors && !LJ::check_priv($remote, "changejournaltype", "")) {
+        if ( $mode eq 'create' && !%errors && ( !$remote || !$remote->has_priv( "changejournaltype", "" ) ) ) {
             my $count;
             my $userid=$cu->{'userid'}+0;
             
diff -r 585a9167642b -r 051ef3de84ec htdocs/customize/advanced/layerbrowse.bml
--- a/htdocs/customize/advanced/layerbrowse.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/customize/advanced/layerbrowse.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -117,9 +117,9 @@
         $layerinfo->{$id}->{'source_viewable'} : undef;
 
     # do they have access?
-    my $isadmin = !defined $pub->{$id} &&                          # public styles are pulled from the system
-                  (LJ::check_priv($remote, 'canview', 'styles') || # account, so we don't want to check privileges
-                   LJ::check_priv($remote, 'canview', '*'));       # in case they're private styles
+    my $isadmin = ! defined $pub->{$id} && $remote && $remote->has_priv( 'canview', 'styles' );
+    # public styles are pulled from the system account, so we don't
+    # want to check privileges in case they're private styles
     return $err->($ML{'.error.cantviewlayer'})
         unless defined $pub->{$id} || $srcview == 1 ||
                LJ::can_manage($remote, $layer->{'userid'}) ||
diff -r 585a9167642b -r 051ef3de84ec htdocs/customize/advanced/layers.bml
--- a/htdocs/customize/advanced/layers.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/customize/advanced/layers.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -47,7 +47,7 @@
 
     # if we don't have a u, maybe they're an admin and can view stuff anyway?
     my $noactions = 0;
-    my $viewall = LJ::check_priv($remote, 'canview', 'styles') || LJ::check_priv($remote, 'canview', '*');
+    my $viewall = $remote && $remote->has_priv( 'canview', 'styles' );
 
     if ($GET{user} && $viewall) {
         return $err->($ML{'.error.cantuseonsystem'})
diff -r 585a9167642b -r 051ef3de84ec htdocs/customize/advanced/layersource.bml
--- a/htdocs/customize/advanced/layersource.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/customize/advanced/layersource.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -26,9 +26,9 @@
         $layerinfo->{$id}->{'source_viewable'} : undef;
 
     # authorized to view this layer?
-    my $isadmin = !defined $pub->{$id} &&                          # public styles are pulled from the system
-                  (LJ::check_priv($remote, 'canview', 'styles') || # account, so we don't want to check privileges
-                   LJ::check_priv($remote, 'canview', '*'));       # in case they're private styles
+    my $isadmin = ! defined $pub->{$id} && $remote && $remote->has_priv( 'canview', 'styles' );
+    # public styles are pulled from the system account, so we don't
+    # want to check privileges in case they're private styles
     return $err->($ML{'/customize/advanced/layerbrowse.bml.error.cantviewlayer'})
         unless defined $pub->{$id} && (! defined $srcview || $srcview != 0) ||
                $srcview == 1 ||
diff -r 585a9167642b -r 051ef3de84ec htdocs/customize/advanced/styles.bml
--- a/htdocs/customize/advanced/styles.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/customize/advanced/styles.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -37,7 +37,7 @@
 
     # if we don't have a u, maybe they're an admin and can view stuff anyway?
     my $noactions = 0;
-    my $viewall = LJ::check_priv($remote, 'canview', 'styles') || LJ::check_priv($remote, 'canview', '*');
+    my $viewall = $remote && $remote->has_priv( 'canview', 'styles' );
 
     if ($GET{user} && $viewall) {
         return $err->($ML{'.error.cantuseonsystem'})
diff -r 585a9167642b -r 051ef3de84ec htdocs/manage/logins.bml
--- a/htdocs/manage/logins.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/manage/logins.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -17,8 +17,7 @@ body<=
 
     my $body = my $user = '';
     my $adminmode = 0;
-    if (LJ::check_priv($u, 'canview', 'sessions') ||
-        LJ::check_priv($u, 'canview', '*')) {
+    if ( $u && $u->has_priv( 'canview', 'sessions' ) ) {
         $user = LJ::canonical_username($GET{'user'} || $POST{'user'});
         $body .= "<form method='GET' action='logins'>\n";
         $body .= "<label for='user'>$ML{'.user'} ";
diff -r 585a9167642b -r 051ef3de84ec htdocs/misc/entry_redirect.bml
--- a/htdocs/misc/entry_redirect.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/misc/entry_redirect.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -4,7 +4,7 @@
     use vars qw(%GET);
 
     my $remote = LJ::get_remote();
-    return "Not authorized" unless LJ::check_priv($remote, "siteadmin", "entry_redirect");
+    return "Not authorized" unless $remote && $remote->has_priv( "siteadmin", "entry_redirect" );
 
     my $u = LJ::load_user($GET{user}) || LJ::load_userid($GET{userid});
     return "Invalid username/userid" unless $u;
diff -r 585a9167642b -r 051ef3de84ec htdocs/register.bml
--- a/htdocs/register.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/register.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -29,7 +29,7 @@ body<=
          unless $foru;
 
      return "<?p $ML{'.error.noaccess'} p?>"
-         unless (LJ::check_priv($remote, "siteadmin", "users") || LJ::check_priv($remote, "siteadmin", "*"));
+         unless $remote && $remote->has_priv( "siteadmin", "users" );
 
      return "<?p $ML{'.error.valid'} p?>"
          if $foru->is_validated;
diff -r 585a9167642b -r 051ef3de84ec htdocs/support/actmulti.bml
--- a/htdocs/support/actmulti.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/support/actmulti.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -26,8 +26,8 @@ body<=
     # what action are they trying to take?
     if ($POST{'action:close'}) {
         my $can_close = 0;
-        $can_close = 1 if LJ::check_priv($remote, 'supportclose', $cat->{catkey});
-        $can_close = 1 if $cat->{public_read} && LJ::check_priv($remote, 'supportclose', '');
+        $can_close = 1 if $remote && $remote->has_priv( 'supportclose', $cat->{catkey} );
+        $can_close = 1 if $cat->{public_read} && $remote && $remote->has_priv( 'supportclose', '' );
         return "<?h1 $ML{'.error'} h1?><?p $ML{'.not.have.access'} p?>" unless $can_close;
 
         # now close all of these requests
diff -r 585a9167642b -r 051ef3de84ec htdocs/support/faqbrowse.bml
--- a/htdocs/support/faqbrowse.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/support/faqbrowse.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -214,14 +214,13 @@ body<=
         }
 
         $backfaqcat = $f->faqcat;
-        if (LJ::check_priv($remote, "faqedit", "*") ||
-            LJ::check_priv($remote, "faqedit", $backfaqcat))
+        if ( $remote && $remote->has_priv( "faqedit", $backfaqcat ) )
         {
             $$body .= "<p align=\"right\"><a href=\"/admin/faq/faqedit?id=$faqid\">$ML{'.edit.faq'}</a></p>";
         }
 
         # this is incredibly ugly. i'm sorry.
-        if ($altlang && LJ::check_priv($remote, "translate", $curlang)) {
+        if ( $altlang && $remote && $remote->has_priv( "translate", $curlang ) ) {
             my @itids;
             push @itids, LJ::Lang::get_itemid($mld->{'dmid'}, "$faqid.$_")
                 foreach qw(1question 3summary 2answer);
diff -r 585a9167642b -r 051ef3de84ec htdocs/support/help.bml
--- a/htdocs/support/help.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/support/help.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -65,8 +65,8 @@ body<=
  # determine if user can close stuff
  my $can_close = 0;
  if ($remote && $state =~ /(?:green|open)/ && $filtercat && $filtercat !~ /^_/) {
-     $can_close = 1 if LJ::check_priv($remote, 'supportclose', $filtercat);        # private cats/only this cat
-     $can_close = 1 if $fcat->{public_read} && LJ::check_priv($remote, 'supportclose', ''); # public cats
+     $can_close = 1 if $remote && $remote->has_priv( 'supportclose', $filtercat );        # private cats/only this cat
+     $can_close = 1 if $fcat->{public_read} && $remote && $remote->has_priv( 'supportclose', '' ); # public cats
  }
 
  my $append;
@@ -219,7 +219,7 @@ body<=
  $ret .= " $ML{'.requests.type'}: <select name='cat'>";
  $ret .= "<option value=\"\">($ML{'.cat.all'})</option>";
  my @filter_cats = LJ::Support::filter_cats($remote, $cats);
- if (LJ::check_priv($remote, "supportread")) {
+ if ( $remote && $remote->has_priv( "supportread" ) ) {
      unshift @filter_cats, { 'catkey' => '_nonpublic',
                              'catname' => '(Private)' };
      unshift @filter_cats, { 'catkey' => '_nonprivate',
diff -r 585a9167642b -r 051ef3de84ec htdocs/support/history.bml
--- a/htdocs/support/history.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/support/history.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -11,7 +11,7 @@ body<=
 
     # supporthelp anywhere lets them in
     return "You are not authorized to view this page."
-        unless LJ::check_priv($remote, 'supporthelp');
+        unless $remote && $remote->has_priv( 'supporthelp' );
 
     my $ret;
     if ($GET{user} || $GET{email} || $GET{userid}) {
diff -r 585a9167642b -r 051ef3de84ec htdocs/support/see_request.bml
--- a/htdocs/support/see_request.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/support/see_request.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -321,9 +321,9 @@ body<=
         # helpers can always find this information anyway just by taking
         # more steps.  Show email history link if they have finduser and
         # thus once again could get this information anyway.
-        my $has_sh = LJ::check_priv($remote, 'supporthelp');
-        my $has_fu = LJ::check_priv($remote, 'finduser');
-        my $has_vs = LJ::check_priv($remote, 'supportviewscreened');
+        my $has_sh = $remote && $remote->has_priv( 'supporthelp' );
+        my $has_fu = $remote && $remote->has_priv( 'finduser' );
+        my $has_vs = $remote && $remote->has_priv( 'supportviewscreened' );
 
         my %show_history = (
                             user  => $has_sh,
@@ -347,7 +347,7 @@ body<=
     $ret .= "</td></tr>\n";
 
     # uniq
-    if (LJ::check_priv($remote, 'sysban', 'uniq') || LJ::check_priv($remote, "canview", "userlog")) {
+    if ( $remote && ( $remote->has_priv( 'sysban', 'uniq' ) || $remote->has_priv( 'canview', 'userlog' ) ) ) {
         my $uniq = $props->{'uniq'} || "<i>$ML{'.none'}</i>";
         $ret .= "<tr><td valign='bottom' align='right'><b>$ML{'.uniq'}</b></td><td>$uniq</td></tr>\n";
     }
@@ -405,8 +405,7 @@ body<=
 
         # if the user has siteadmin:users or siteadmin:* show them link to resend validation email?
         my $extraval = sub {
-            return '' unless LJ::check_priv($remote, 'siteadmin', 'users') ||
-                             LJ::check_priv($remote, 'siteadmin', '*');
+            return '' unless $remote && $remote->has_priv( 'siteadmin', 'users' );
             return " (<a href='$LJ::SITEROOT/register?foruser=$u->{user}'>$ML{'.resend.validation.email'}</a>)";
         };
 
@@ -420,8 +419,8 @@ body<=
         $ret .= "<br />$ML{'.scheme'}: <b>" . ($u->{schemepref} ? $u->{schemepref} : "default") . "</b>; ";
         $ret .= "$ML{'.language'}: <b>" . ($u->{browselang} ? $u->{browselang} : "default") . "</b>";
 
-        my $view_history = LJ::check_priv($remote, 'historyview');
-        my $view_userlog = LJ::check_priv($remote, 'canview', 'userlog') || LJ::check_priv($remote, 'canview', '*');
+        my $view_history = $remote && $remote->has_priv( 'historyview' );
+        my $view_userlog = $remote && $remote->has_priv( 'canview', 'userlog' );
 
         if ($view_history || $view_userlog) {
             $ret .= "<br />$ML{'.view'}: ";
@@ -451,7 +450,7 @@ body<=
         20 => "2",
         30 => "3",
     );
-    my $can_see_tier = LJ::check_priv($remote, "supporthelp") || LJ::check_priv($remote, "supportviewscreened") ? 1 : 0;
+    my $can_see_tier = $remote && ( $remote->has_priv( "supporthelp" ) || $remote->has_priv( "supportviewscreened" ) );
     if (LJ::is_enabled("support_response_tier") && $can_see_tier) {
         my $latest_timelogged = 0;
         my $latest_timelogged_tier = 0;
diff -r 585a9167642b -r 051ef3de84ec htdocs/support/stock_answers.bml
--- a/htdocs/support/stock_answers.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/support/stock_answers.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -20,9 +20,8 @@ body<=
 
     # editing is based on ability to grant supporthelp.  and throw an error if they
     # posted but can't edit.
-    my $canedit = ($spcatid && LJ::check_priv($remote, 'admin', "supporthelp/$cats->{$spcatid}->{catkey}")) ||
-                  LJ::check_priv($remote, 'admin', 'supporthelp') ||
-                  LJ::check_priv($remote, 'admin', '*');
+    my $canedit = ( $spcatid && $remote && $remote->has_priv( 'admin', "supporthelp/$cats->{$spcatid}->{catkey}" ) ) ||
+                  ( $remote && $remote->has_priv( 'admin', 'supporthelp' ) );
     if (LJ::did_post()) {
         return "<?h1 $ML{'Error'} h1?> $ML{'error.invalidform'}" unless LJ::check_form_auth();
         return "<?h1 $ML{'.error'} h1?><?p $ML{'.not.have.access.to.actions'} p?>"
diff -r 585a9167642b -r 051ef3de84ec htdocs/talkread.bml
--- a/htdocs/talkread.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/talkread.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -155,11 +155,11 @@ body<=
     # set viewall/viewsome
     my $viewall = 0;
     my $viewsome = 0;
-    if ($GET{viewall} && LJ::check_priv($remote, 'canview', 'suspended')) {
+    if ( $GET{viewall} && $remote && $remote->has_priv( 'canview', 'suspended' ) ) {
         LJ::statushistory_add($u->{'userid'}, $remote->{'userid'},
                               "viewall", "entry: $u->{'user'}, itemid: $item->{'itemid'}, statusvis: " . $u->statusvis);
-        $viewall = LJ::check_priv($remote, 'canview', '*');
-        $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+        $viewall = $remote && $remote->has_priv( 'canview', '*' );
+        $viewsome = $viewall || ( $remote && $remote->has_priv( 'canview', 'suspended' ) );
     }
 
     # check for deleted/suspended/security
diff -r 585a9167642b -r 051ef3de84ec htdocs/tools/recent_email.bml
--- a/htdocs/tools/recent_email.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/tools/recent_email.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -8,7 +8,7 @@ body<=
     my $u = LJ::get_remote()
         or return "<?needlogin?>";
 
-    my $is_admin = LJ::check_priv($u, "siteadmin", "emailqueue");
+    my $is_admin = $u->has_priv( "siteadmin", "emailqueue" );
 
     # temporary until the information displayed on this page can be expanded
     return "You do not have access to use this page."
diff -r 585a9167642b -r 051ef3de84ec htdocs/tools/recent_emailposts.bml
--- a/htdocs/tools/recent_emailposts.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/tools/recent_emailposts.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -48,7 +48,7 @@ body<=
     my $remote = LJ::get_remote();
     return "<?needlogin?>" unless $remote;
 
-    my $admin = LJ::check_priv($remote, 'supporthelp');
+    my $admin = $remote->has_priv( 'supporthelp' );
 
     my $u;
     if ( $admin ) {
diff -r 585a9167642b -r 051ef3de84ec htdocs/translate/editpage.bml
--- a/htdocs/translate/editpage.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/translate/editpage.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -25,10 +25,9 @@
  my ($sth, $ret);
 
  my $remote = LJ::get_remote();
- my $can_edit = (LJ::check_priv($remote, "translate", "*") ||
-                 LJ::check_priv($remote, "translate", $l->{'lncode'}));
- my $can_delete = LJ::check_priv($remote, "translate", "[itemdelete]");
- my $can_rename = LJ::check_priv($remote, "translate", "[itemrename]");
+ my $can_edit   = $remote && $remote->has_priv( "translate", $l->{'lncode'} );
+ my $can_delete = $remote && $remote->has_priv( "translate", "[itemdelete]" );
+ my $can_rename = $remote && $remote->has_priv( "translate", "[itemrename]" );
 
  # Extra checkboxes for default language and root language (DW: en_DW and en)
  my $extra_checkboxes = $l->{'lncode'} eq $LJ::DEFAULT_LANG || !defined $lp;
diff -r 585a9167642b -r 051ef3de84ec htdocs/translate/search.bml
--- a/htdocs/translate/search.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/translate/search.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -30,9 +30,8 @@
     {
         my $remote = LJ::get_remote();
         return "This search type is restricted to $l->{'lnname'} translators." unless
-            (LJ::check_priv($remote, "translate", "*") ||
-             LJ::check_priv($remote, "translate", $l->{'lncode'}) ||
-             LJ::check_priv($remote, "faqedit", "*")); # FAQ admins can search too
+            $remote && ( $remote->has_priv( "translate", $l->{'lncode'} ) ||
+                         $remote->has_priv( "faqedit", "*" ) ); # FAQ admins can search too
 
         my $qtext = $dbr->quote($FORM{'searchtext'});
         my $dmid = $FORM{'searchdomain'}+0;
diff -r 585a9167642b -r 051ef3de84ec htdocs/userinfo.bml
--- a/htdocs/userinfo.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/userinfo.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -52,7 +52,7 @@ body<=
         $u = LJ::load_userid( $userid );
 
         # only users with finduser can view profiles by userid (excluding identity accounts)
-        unless ( LJ::check_priv( $remote, 'finduser' ) || ( $GET{t} eq "I" && $u && $u->is_identity ) ) {
+        unless ( ( $remote && $remote->has_priv( 'finduser' ) ) || ( $GET{t} eq "I" && $u && $u->is_identity ) ) {
             $title = $ML{'Error'};
             return $ML{'.label.reqfinduser'};
         }
@@ -127,8 +127,8 @@ body<=
 
     # can't view suspended/deleted profiles unless you have viewall
     my $viewall = 0;
-    if ( $GET{viewall} && LJ::check_priv( $remote, "canview", "suspended" ) ) {
-        $viewall = LJ::check_priv( $remote, 'canview', '*' ) ? 1 : 0;
+    if ( $GET{viewall} && $remote && $remote->has_priv( "canview", "suspended" ) ) {
+        $viewall = $remote->has_priv( 'canview', '*' ) ? 1 : 0;
         LJ::statushistory_add( $u->id, $remote->id, "viewall", "userinfo: " . $u->user . ", statusvis: " . $u->statusvis );
     } else {
         if ( $u->is_suspended ) {
diff -r 585a9167642b -r 051ef3de84ec htdocs/view/index.bml
--- a/htdocs/view/index.bml	Sat Aug 29 12:54:41 2009 +0000
+++ b/htdocs/view/index.bml	Sat Aug 29 13:08:42 2009 +0000
@@ -56,11 +56,11 @@
     # do they have the viewall priv?
     my $viewall = 0;
     my $viewsome = 0;
-    if ($GET{'viewall'} && LJ::check_priv($remote, "canview")) {
+    if ( $GET{'viewall'} && $remote && $remote->has_priv( "canview" ) ) {
         LJ::statushistory_add($u->{'userid'}, $remote->{'userid'},
                               "viewall", "month: $u->{'user'}, statusvis: " . $u->statusvis);
-        $viewall = LJ::check_priv($remote, 'canview', '*');
-        $viewsome = $viewall || LJ::check_priv($remote, 'canview', 'suspended');
+        $viewall = $remote->has_priv( 'canview', '*' );
+        $viewsome = $viewall || $remote->has_priv( 'canview', 'suspended' );
 
     # check for deleted/suspended
     } else {
diff -r 585a9167642b -r 051ef3de84ec t/console-priv.t
--- a/t/console-priv.t	Sat Aug 29 12:54:41 2009 +0000
+++ b/t/console-priv.t	Sat Aug 29 13:08:42 2009 +0000
@@ -43,21 +43,21 @@ is($run->("priv_package list $pkg"),
 # one user, one priv
 is($run->("priv grant supporthelp:test " . $u2->user),
    "info: Granting: 'supporthelp' with arg 'test' for user '" . $u2->user . "'.");
-ok(LJ::check_priv($u2, "supporthelp", "test"), "has priv");
+ok($u2->has_priv( "supporthelp", "test" ), "has priv");
 
 is($run->("priv revoke supporthelp:test " . $u2->user),
    "info: Denying: 'supporthelp' with arg 'test' for user '" . $u2->user . "'.");
-ok(!LJ::check_priv($u2, "supporthelp", "test"), "no longer privved");
+ok(!$u2->has_priv( "supporthelp", "test" ), "no longer privved");
 
 is($run->("priv grant supporthelp:test,supporthelp:bananas " . $u2->user),
    "info: Granting: 'supporthelp' with arg 'test' for user '" . $u2->user . "'.\n"
    . "info: Granting: 'supporthelp' with arg 'bananas' for user '" . $u2->user . "'.");
-ok(LJ::check_priv($u2, "supporthelp", "test"), "has priv");
-ok(LJ::check_priv($u2, "supporthelp", "bananas"), "has priv");
+ok($u2->has_priv( "supporthelp", "test" ), "has priv");
+ok($u2->has_priv( "supporthelp", "bananas" ), "has priv");
 
 is($run->("priv revoke_all supporthelp " . $u2->user),
    "info: Denying: 'supporthelp' with all args for user '" . $u2->user . "'.");
-ok(!LJ::check_priv($u2, "supporthelp"), "no longer has priv");
+ok(!$u2->has_priv( "supporthelp" ), "no longer has priv");
 
 is($run->("priv revoke supporthelp " . $u2->user),
    "error: You must explicitly specify an empty argument when revoking a priv.\n"
diff -r 585a9167642b -r 051ef3de84ec t/privs.t
--- a/t/privs.t	Sat Aug 29 12:54:41 2009 +0000
+++ b/t/privs.t	Sat Aug 29 13:08:42 2009 +0000
@@ -9,10 +9,10 @@ use LJ::Test qw (temp_user);
 # check that it requires a login
 my $u = temp_user();
 
-is(LJ::check_priv($u, "supporthelp", "*"), 0, "Normal user doesn't have privs");
+is($u->has_priv( "supporthelp", "*" ), 0, "Normal user doesn't have privs");
 
 is($u->grant_priv("supporthelp", "*"), 1, "Granted user the priv");
-is(LJ::check_priv($u, "supporthelp", "*"), 1, "User has priv");
+is($u->has_priv( "supporthelp", "*" ), 1, "User has priv");
 
 is($u->revoke_priv("supporthelp", "*"), 1, "Revoked the priv from the user");
-is(LJ::check_priv($u, "supporthelp", "*"), 0, "User no longer has the priv");
+is($u->has_priv( "supporthelp", "*" ), 0, "User no longer has the priv");
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org