[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
kareila.
Files modified:
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]](https://www.dreamwidth.org/img/silk/identity/user.png)
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'><< 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'><< 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"); --------------------------------------------------------------------------------