[Rt-commit] rt branch, 3.999-trunk, updated. cfdb26fb40e96ae180dae46c75816738f2919543

sartak at bestpractical.com sartak at bestpractical.com
Thu Dec 3 23:49:09 EST 2009


The branch, 3.999-trunk has been updated
       via  cfdb26fb40e96ae180dae46c75816738f2919543 (commit)
      from  5e85b67ad5b5ab8a1a08e8c901f74844d116fa9e (commit)

Summary of changes:
 lib/RT/Action/CreateTicketLinks.pm                 |    2 +-
 lib/RT/Action/DeleteTicketLinks.pm                 |    2 +-
 lib/RT/Action/EditTicketCFs.pm                     |    8 +++++---
 lib/RT/Dispatcher.pm                               |    2 +-
 lib/RT/Interface/Web.pm                            |    8 ++++----
 lib/RT/View/Ticket/Links.pm                        |    4 +++-
 share/html/Admin/CustomFields/GroupRights.html     |    6 +++---
 share/html/Admin/CustomFields/Modify.html          |    2 +-
 share/html/Admin/CustomFields/Objects.html         |    4 ++--
 share/html/Admin/CustomFields/UserRights.html      |    6 +++---
 share/html/Admin/CustomFields/index.html           |    2 +-
 share/html/Admin/Elements/EditCustomField          |    2 +-
 share/html/Admin/Elements/EditCustomFields         |   10 +++++-----
 share/html/Admin/Elements/EditTemplates            |    4 ++--
 share/html/Admin/Elements/ObjectCustomFields       |    2 +-
 .../Admin/Elements/SelectCustomFieldLookupType     |    2 +-
 share/html/Admin/Elements/SelectCustomFieldType    |    2 +-
 share/html/Admin/Elements/SelectNewGroupMembers    |    2 +-
 share/html/Admin/Elements/SelectRights             |    4 ++--
 share/html/Admin/Global/CustomFields/Groups.html   |    2 +-
 .../Admin/Global/CustomFields/Queue-Tickets.html   |    2 +-
 .../Global/CustomFields/Queue-Transactions.html    |    2 +-
 share/html/Admin/Global/CustomFields/Queues.html   |    2 +-
 share/html/Admin/Global/CustomFields/Users.html    |    2 +-
 share/html/Admin/Global/GroupRights.html           |    6 +++---
 share/html/Admin/Global/Template.html              |    2 +-
 share/html/Admin/Global/UserRights.html            |    4 ++--
 share/html/Admin/Groups/GroupRights.html           |    6 +++---
 share/html/Admin/Groups/History.html               |    2 +-
 share/html/Admin/Groups/Modify.html                |    2 +-
 share/html/Admin/Groups/UserRights.html            |    4 ++--
 share/html/Admin/Groups/index.html                 |    2 +-
 share/html/Admin/Queues/CustomField.html           |    3 ++-
 share/html/Admin/Queues/CustomFields.html          |    4 ++--
 share/html/Admin/Queues/GroupRights.html           |    8 ++++----
 share/html/Admin/Queues/People.html                |    6 +++---
 share/html/Admin/Queues/Template.html              |    5 +++--
 share/html/Admin/Queues/Templates.html             |    3 ++-
 share/html/Admin/Queues/UserRights.html            |    6 +++---
 share/html/Admin/Queues/index.html                 |    2 +-
 share/html/Admin/Users/CustomFields.html           |    4 ++--
 share/html/Admin/Users/GnuPG.html                  |    2 +-
 share/html/Admin/Users/History.html                |    2 +-
 share/html/Admin/Users/Memberships.html            |   10 +++++-----
 share/html/Admin/Users/Modify.html                 |    2 +-
 share/html/Admin/Users/MyRT.html                   |    2 +-
 share/html/Admin/Users/index.html                  |    2 +-
 share/html/Approvals/Elements/PendingMyApproval    |    4 ++--
 share/html/Dashboards/Elements/DashboardsForObject |    2 +-
 share/html/Dashboards/Queries.html                 |    6 +++---
 share/html/Dashboards/Subscription.html            |    4 ++--
 share/html/Dashboards/index.html                   |    2 +-
 share/html/Download/CustomFieldValue/dhandler      |    2 +-
 share/html/Elements/CollectionList                 |    2 +-
 share/html/Elements/Dashboards                     |    2 +-
 share/html/Elements/MessageBox                     |    2 +-
 share/html/Elements/MyReminders                    |    2 +-
 share/html/Elements/QueueSummary                   |    4 ++--
 share/html/Elements/SelectGroups                   |    2 +-
 share/html/Elements/SelectOwner                    |    6 +++---
 share/html/Elements/SelectTicketSortBy             |    2 +-
 share/html/Elements/SelectUsers                    |    2 +-
 share/html/Elements/ShowMemberships                |    4 ++--
 share/html/Elements/ShowUser                       |    2 +-
 share/html/Helpers/Autocomplete/CustomFieldValues  |    2 +-
 share/html/Prefs/Quicksearch.html                  |    2 +-
 share/html/REST/1.0/Forms/attachment/default       |    2 +-
 share/html/REST/1.0/Forms/group/customfields       |    2 +-
 share/html/REST/1.0/Forms/group/default            |    2 +-
 share/html/REST/1.0/Forms/group/ns                 |    2 +-
 share/html/REST/1.0/Forms/queue/customfields       |    2 +-
 share/html/REST/1.0/Forms/queue/default            |    2 +-
 share/html/REST/1.0/Forms/queue/ns                 |    2 +-
 share/html/REST/1.0/Forms/queue/ticketcustomfields |    2 +-
 share/html/REST/1.0/Forms/ticket/attachments       |    4 ++--
 share/html/REST/1.0/Forms/ticket/comment           |    2 +-
 share/html/REST/1.0/Forms/ticket/default           |    8 +++++---
 share/html/REST/1.0/Forms/ticket/history           |    6 +++---
 share/html/REST/1.0/Forms/ticket/links             |    4 ++--
 share/html/REST/1.0/Forms/ticket/merge             |    4 ++--
 share/html/REST/1.0/Forms/ticket/take              |    2 +-
 share/html/REST/1.0/Forms/transaction/default      |    6 +++---
 share/html/REST/1.0/Forms/user/default             |    2 +-
 share/html/REST/1.0/search/ticket                  |    2 +-
 share/html/REST/1.0/ticket/comment                 |    2 +-
 share/html/REST/1.0/ticket/link                    |    2 +-
 share/html/REST/1.0/ticket/merge                   |    2 +-
 share/html/Search/Bulk.html                        |    8 ++++----
 share/html/Search/Elements/PickCFs                 |    4 ++--
 share/html/Search/Elements/SelectGroup             |    2 +-
 share/html/Search/Results.rdf                      |    2 +-
 share/html/Search/Results.tsv                      |    2 +-
 share/html/Search/Simple.html                      |    2 +-
 share/html/SelfService/Create.html                 |    3 ++-
 share/html/SelfService/CreateTicketInQueue.html    |    2 +-
 share/html/SelfService/Display.html                |    4 ++--
 share/html/Ticket/Attachment/WithHeaders/dhandler  |    2 +-
 share/html/Ticket/Attachment/dhandler              |    2 +-
 share/html/Ticket/Display.html                     |    3 ++-
 share/html/Ticket/Elements/AddWatchers             |    4 ++--
 share/html/Ticket/Elements/Bookmark                |    2 +-
 share/html/Ticket/Elements/FindAttachments         |    2 +-
 share/html/Ticket/Elements/LoadTextAttachments     |    2 +-
 share/html/Ticket/Elements/PreviewScrips           |    2 +-
 share/html/Ticket/Elements/ShowHistory             |    2 +-
 share/html/Ticket/Elements/ShowRequestor           |    2 +-
 share/html/Ticket/Forward.html                     |    2 +-
 share/html/Ticket/GnuPG.html                       |    2 +-
 share/html/Ticket/Graphs/Elements/ShowGraph        |    2 +-
 share/html/Ticket/Graphs/Render                    |    2 +-
 share/html/Ticket/ShowEmailRecord.html             |    2 +-
 share/html/Tools/MyDay.html                        |    2 +-
 share/html/Tools/Reports/CreatedByDates.html       |    3 ++-
 share/html/Tools/Reports/ResolvedByDates.html      |    3 ++-
 share/html/Tools/Reports/ResolvedByOwner.html      |    3 ++-
 share/html/User/Prefs.html                         |    2 +-
 share/html/index.html                              |    2 +-
 117 files changed, 190 insertions(+), 176 deletions(-)

- Log -----------------------------------------------------------------
commit cfdb26fb40e96ae180dae46c75816738f2919543
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Dec 3 23:42:56 2009 -0500

    Revert ew(current_user => Jifty->web->current_user)"
    
    This could cause security problems when we're in the context of
    currentuser being bumped up to superuser temporarily.
    
    This reverts commits
    ef714aa07e42dbc2ce9690a16a03c4fe27da2441
    74fe5492690128b8d07f1acb4717c5de4ede5e5f
    8a44df1018b6dac7921fa22654b6014f132eed52
    
    Conflicts:
    
    	lib/RT/View/Ticket/Links.pm
    	share/html/Admin/Queues/CustomField.html
    	share/html/Admin/Queues/Template.html
    	share/html/Admin/Queues/Templates.html
    	share/html/SelfService/Create.html
    	share/html/Ticket/Display.html
    	share/html/Tools/Reports/CreatedByDates.html
    	share/html/Tools/Reports/ResolvedByDates.html
    	share/html/Tools/Reports/ResolvedByOwner.html

diff --git a/lib/RT/Action/CreateTicketLinks.pm b/lib/RT/Action/CreateTicketLinks.pm
index f2b7457..1f61546 100644
--- a/lib/RT/Action/CreateTicketLinks.pm
+++ b/lib/RT/Action/CreateTicketLinks.pm
@@ -38,7 +38,7 @@ sub take_action {
     $self->result->content->{'detailed_messages'} ||= {};
     if ( $self->argument_value('id') ) {
         my $ticket =
-          RT::Model::Ticket->new;
+          RT::Model::Ticket->new( current_user => Jifty->web->current_user );
         $ticket->load($self->argument_value('id'));
         for my $field ( keys %map ) {
             my $type = renaming( $field, { convention => 'UpperCamelCase' } );
diff --git a/lib/RT/Action/DeleteTicketLinks.pm b/lib/RT/Action/DeleteTicketLinks.pm
index e71c178..c994287 100644
--- a/lib/RT/Action/DeleteTicketLinks.pm
+++ b/lib/RT/Action/DeleteTicketLinks.pm
@@ -17,7 +17,7 @@ sub take_action {
 
     if ( $self->argument_value('id') ) {
         my $ticket =
-          RT::Model::Ticket->new;
+          RT::Model::Ticket->new( current_user => Jifty->web->current_user );
         $ticket->load($self->argument_value('id'));
 
         for my $field ( keys %map ) {
diff --git a/lib/RT/Action/EditTicketCFs.pm b/lib/RT/Action/EditTicketCFs.pm
index 84d1efd..4fabbd6 100644
--- a/lib/RT/Action/EditTicketCFs.pm
+++ b/lib/RT/Action/EditTicketCFs.pm
@@ -40,7 +40,7 @@ sub take_action {
     $self->result->content->{'detailed_messages'} ||= {};
     if ( $self->argument_value('id') ) {
         my $ticket =
-          RT::Model::Ticket->new;
+          RT::Model::Ticket->new( current_user => Jifty->web->current_user );
         $ticket->load( $self->argument_value('id') );
 
         my $args = $self->argument_values;
@@ -51,7 +51,8 @@ sub take_action {
             if ( $tbd =~ /delete_(\d+)_(\d+)/ ) {
                 my ( $cfid, $ocfvid ) = ( $1, $2 );
                 my $cf =
-                  RT::Model::CustomField->new;
+                  RT::Model::CustomField->new(
+                    current_user => Jifty->web->current_user );
                 $cf->load_by_id($cfid);
                 my ( $val, $msg ) = $ticket->delete_custom_field_value(
                     field    => $cfid,
@@ -68,7 +69,8 @@ sub take_action {
 
         for my $cfid (@cfids) {
             my $cf =
-              RT::Model::CustomField->new;
+              RT::Model::CustomField->new(
+                current_user => Jifty->web->current_user );
             $cf->load_by_id($cfid);
 
             my $values     = $ticket->custom_field_values( $cf->id );
diff --git a/lib/RT/Dispatcher.pm b/lib/RT/Dispatcher.pm
index c891df0..118aa27 100644
--- a/lib/RT/Dispatcher.pm
+++ b/lib/RT/Dispatcher.pm
@@ -333,7 +333,7 @@ before qr'Dashboards/?' => run {
 before 'Dashboards/Modify.html' => run {
     my $id        = Jifty->web->request->argument('id') || '';
     my $results   = [];
-    my $Dashboard = RT::Dashboard->new;
+    my $Dashboard = RT::Dashboard->new( current_user => Jifty->web->current_user );
     set Dashboard => $Dashboard;
     my @privacies = $Dashboard->_privacy_objects( ( !$id ? 'create' : 'modify' ) => 1 );
     set privacies => \@privacies;
diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index e255975..fcf6f69 100755
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -395,7 +395,7 @@ sub load_ticket {
         abort("No ticket specified");
     }
 
-    my $Ticket = RT::Model::Ticket->new;
+    my $Ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
     $Ticket->load($id);
     unless ( $Ticket->id ) {
         abort("Could not load ticket $id");
@@ -465,7 +465,7 @@ sub process_update_message {
 
     $Message->head->add( 'Message-ID' => RT::Interface::Email::gen_message_id( Ticket => $args{'ticket_obj'}, ) );
     my $old_txn =
-      RT::Model::Transaction->new;
+      RT::Model::Transaction->new( current_user => Jifty->web->current_user );
     if ( $args{args_ref}->{'quote_transaction'} ) {
         $old_txn->load( $args{args_ref}->{'quote_transaction'} );
     } else {
@@ -644,7 +644,7 @@ sub process_acl_changes {
         @Rights = grep $_, @Rights;
         next unless @Rights;
 
-        my $principal = RT::Model::Principal->new;
+        my $principal = RT::Model::Principal->new( current_user => Jifty->web->current_user );
         $principal->load($principal_id);
 
         my $obj;
@@ -873,7 +873,7 @@ sub process_object_custom_field_updates {
             }
 
             foreach my $cf ( keys %{ $custom_fields_to_mod{$class}{$id} } ) {
-                my $CustomFieldObj = RT::Model::CustomField->new;
+                my $CustomFieldObj = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
                 $CustomFieldObj->load_by_id($cf);
                 unless ( $CustomFieldObj->id ) {
                     Jifty->log->warn("Couldn't load custom field #$cf");
diff --git a/lib/RT/View/Ticket/Links.pm b/lib/RT/View/Ticket/Links.pm
index f072113..7aba0f6 100644
--- a/lib/RT/View/Ticket/Links.pm
+++ b/lib/RT/View/Ticket/Links.pm
@@ -113,7 +113,9 @@ template '_elements/edit_cfs' => sub {
         $cfs    = $ticket->custom_fields;
     }
     elsif ( get('queue') ) {
-        my $queue = RT::Model::Queue->load( get('queue') );
+        my $queue =
+          RT::Model::Queue->new( current_user => Jifty->web->current_user );
+        $queue->load( get('queue') );
         $cfs = $queue->ticket_custom_fields;
     }
 
diff --git a/share/html/Admin/CustomFields/GroupRights.html b/share/html/Admin/CustomFields/GroupRights.html
index fe07cb6..d424798 100644
--- a/share/html/Admin/CustomFields/GroupRights.html
+++ b/share/html/Admin/CustomFields/GroupRights.html
@@ -59,7 +59,7 @@
       
 <h1><&|/l&>System groups</&></h1>
 <table>
-% my $Groups = RT::Model::GroupCollection->new;
+% my $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_system_internal_groups();
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -75,7 +75,7 @@
 </table>
 <h1><&|/l&>User defined groups</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_user_defined_groups();    
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -101,7 +101,7 @@ if (!defined $id) {
     $m->comp("/Elements/Error", why => _("No CustomField defined"));
 }
 
-my $CustomFieldObj = RT::Model::CustomField->new;
+my $CustomFieldObj = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 $CustomFieldObj->load($id) || $m->comp("/Elements/Error", why => _("Couldn't load CustomField %1",$id));
 
 my $title = _('Modify group rights for custom field %1', $CustomFieldObj->name);
diff --git a/share/html/Admin/CustomFields/Modify.html b/share/html/Admin/CustomFields/Modify.html
index d44b258..cdcb34e 100644
--- a/share/html/Admin/CustomFields/Modify.html
+++ b/share/html/Admin/CustomFields/Modify.html
@@ -131,7 +131,7 @@
 <%INIT>
 my ($title, @results, $disabled);
 
-my $CustomFieldObj = RT::Model::CustomField->new;
+my $CustomFieldObj = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 my $current_tab = 'Admin/CustomFields/Modify.html';
 
 unless ( $id ) {
diff --git a/share/html/Admin/CustomFields/Objects.html b/share/html/Admin/CustomFields/Objects.html
index 8881fd0..b95e31a 100644
--- a/share/html/Admin/CustomFields/Objects.html
+++ b/share/html/Admin/CustomFields/Objects.html
@@ -68,7 +68,7 @@
 
 </&>
 <%INIT>
-my $CF = RT::Model::CustomField->new;
+my $CF = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 $CF->load($id) if ($id);
 
 unless ($CF->id) {  abort(_("Could not load CustomField %1", $id))};
@@ -103,7 +103,7 @@ $objects->order_by( column => 'name' );
 
 
 my $objectCFs;
-$objectCFs = RT::Model::ObjectCustomFieldCollection->new;
+$objectCFs = RT::Model::ObjectCustomFieldCollection->new( current_user => Jifty->web->current_user );
 $objectCFs->find_all_rows;
 $objectCFs->limit_to_custom_field($id);
 
diff --git a/share/html/Admin/CustomFields/UserRights.html b/share/html/Admin/CustomFields/UserRights.html
index fcfcaa9..862bf94 100644
--- a/share/html/Admin/CustomFields/UserRights.html
+++ b/share/html/Admin/CustomFields/UserRights.html
@@ -59,7 +59,7 @@ title => $title, &>
         
 %	while (my $Member = $Users->next()) {
 % my $user_object = $Member->member->object();
-% my $group = RT::Model::Group->new;
+% my $group = RT::Model::Group->new( current_user => Jifty->web->current_user );
 % $group->load_acl_equivalence($Member->member);
   <tr align="right"> 
 	<td valign="top"><& /Elements/ShowUser, user => $user_object &></td>
@@ -89,11 +89,11 @@ if (!defined $id) {
     $m->comp("/Elements/Error", why => _("No Class defined"));
 }
 
-my $CustomFieldObj = RT::Model::CustomField->new;
+my $CustomFieldObj = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 $CustomFieldObj->load($id) || $m->comp("/Elements/Error", why => _("Couldn't load Class %1",$id));
 
 # Find out which users we want to display ACL selects for
-my $privileged = RT::Model::Group->new;
+my $privileged = RT::Model::Group->new( current_user => Jifty->web->current_user );
 $privileged->load_system_internal('privileged');
 my $Users = $privileged->members;
 
diff --git a/share/html/Admin/CustomFields/index.html b/share/html/Admin/CustomFields/index.html
index 2e9d7a2..6590ea5 100644
--- a/share/html/Admin/CustomFields/index.html
+++ b/share/html/Admin/CustomFields/index.html
@@ -101,7 +101,7 @@ if ( !$type && $ARGS{'type'} ) {
     Jifty->log->warn("'type' argument is deprecated use 'type' instead");
 }
 
-my $CustomFields = RT::Model::CustomFieldCollection->new;
+my $CustomFields = RT::Model::CustomFieldCollection->new( current_user => Jifty->web->current_user );
 $CustomFields->find_all_rows;
 $CustomFields->{'find_disabled_rows'} = 1 if $show_disabled;
 $CustomFields->limit_to_lookup_type( $type ) if $type;
diff --git a/share/html/Admin/Elements/EditCustomField b/share/html/Admin/Elements/EditCustomField
index e4852f4..4395e8a 100755
--- a/share/html/Admin/Elements/EditCustomField
+++ b/share/html/Admin/Elements/EditCustomField
@@ -90,7 +90,7 @@
 
 <%INIT>
 
-my $CustomFieldObj = RT::Model::CustomField->new;
+my $CustomFieldObj = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 my $enabled_checked = 'checked="checked"';
 my (@results);
 
diff --git a/share/html/Admin/Elements/EditCustomFields b/share/html/Admin/Elements/EditCustomFields
index b467999..ad7f202 100755
--- a/share/html/Admin/Elements/EditCustomFields
+++ b/share/html/Admin/Elements/EditCustomFields
@@ -67,7 +67,7 @@
 
 
 <%INIT>
-my $CustomFields = RT::Model::CustomFieldCollection->new;
+my $CustomFields = RT::Model::CustomFieldCollection->new( current_user => Jifty->web->current_user );
 my @results;
 my (@GlobalCFs, @UnassignedCFs);
 
@@ -85,7 +85,7 @@ $CustomFields->order_by( column => 'name' );
 
 
 my ($GlobalCFs, $objectCFs);
-$objectCFs = RT::Model::ObjectCustomFieldCollection->new;
+$objectCFs = RT::Model::ObjectCustomFieldCollection->new( current_user => Jifty->web->current_user );
 $objectCFs->find_all_rows;
 $objectCFs->limit_to_object_id($id);
 $objectCFs->limit_to_lookup_type($lookup);
@@ -106,7 +106,7 @@ if (grep $_ > 1, values %sort_orders) {
 
 # {{{ deal with moving sort_order of custom fields
 if ($custom_field and $move) {
-    my $SourceObj = RT::Model::ObjectCustomField->new;
+    my $SourceObj = RT::Model::ObjectCustomField->new( current_user => Jifty->web->current_user );
     $SourceObj->load_by_cols( object_id => $id, custom_field => $custom_field );
 
     my $targetObj;
@@ -145,7 +145,7 @@ if ($custom_field and $move) {
 # }}}
 
 if ($id) {
-    $GlobalCFs = RT::Model::ObjectCustomFieldCollection->new;
+    $GlobalCFs = RT::Model::ObjectCustomFieldCollection->new( current_user => Jifty->web->current_user );
     $GlobalCFs->limit_to_object_id(0);
     $GlobalCFs->limit_to_lookup_type($lookup);
 }
@@ -186,7 +186,7 @@ while (my $cf = $CustomFields->next) {
 }
 
 # redo search...
-$objectCFs = RT::Model::ObjectCustomFieldCollection->new;
+$objectCFs = RT::Model::ObjectCustomFieldCollection->new( current_user => Jifty->web->current_user );
 $objectCFs->find_all_rows;
 $objectCFs->limit_to_object_id($id);
 $objectCFs->limit_to_lookup_type($lookup);
diff --git a/share/html/Admin/Elements/EditTemplates b/share/html/Admin/Elements/EditTemplates
index 8b807a6..95e50a0 100755
--- a/share/html/Admin/Elements/EditTemplates
+++ b/share/html/Admin/Elements/EditTemplates
@@ -79,10 +79,10 @@ $format ||= qq{'<a href="__WebPath__$dir_path/Template.html?queue=$id&template=_
     .qq{,'<a href="__WebPath__$dir_path/Template.html?queue=$id&template=__id__">__name__</a>/TITLE:name'}
     .qq{,'__description__'};
 
-my $queue_obj = RT::Model::Queue->new;
+my $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 $queue_obj->load( $id ) if $id;
 
-my $Templates = RT::Model::TemplateCollection->new;
+my $Templates = RT::Model::TemplateCollection->new( current_user => Jifty->web->current_user );
 if ( $queue_obj->id ) {
     $Templates->limit_to_queue( $id );
 }
diff --git a/share/html/Admin/Elements/ObjectCustomFields b/share/html/Admin/Elements/ObjectCustomFields
index b5571aa..98b3efd 100644
--- a/share/html/Admin/Elements/ObjectCustomFields
+++ b/share/html/Admin/Elements/ObjectCustomFields
@@ -73,7 +73,7 @@ my $object = $object_type->new();
 my $QualifiedType;
 my $FriendlySubTypes;
 if (defined $sub_type && $sub_type =~/^RT::(.*)$/)  {
-    $FriendlySubTypes = RT::Model::CustomField->new->friendly_lookup_type($object->custom_field_lookup_type);
+    $FriendlySubTypes = RT::Model::CustomField->new( current_user => Jifty->web->current_user )->friendly_lookup_type($object->custom_field_lookup_type);
    $QualifiedType = "$Type-$1"; 
 } else {
     $QualifiedType = $Type;
diff --git a/share/html/Admin/Elements/SelectCustomFieldLookupType b/share/html/Admin/Elements/SelectCustomFieldLookupType
index 4802458..45dd896 100644
--- a/share/html/Admin/Elements/SelectCustomFieldLookupType
+++ b/share/html/Admin/Elements/SelectCustomFieldLookupType
@@ -51,7 +51,7 @@
 %}
 </select>
 <%INIT>
-my $cf = RT::Model::CustomField->new;
+my $cf = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 
 </%INIT>
 <%ARGS>
diff --git a/share/html/Admin/Elements/SelectCustomFieldType b/share/html/Admin/Elements/SelectCustomFieldType
index e3c2dc5..ced6615 100755
--- a/share/html/Admin/Elements/SelectCustomFieldType
+++ b/share/html/Admin/Elements/SelectCustomFieldType
@@ -51,7 +51,7 @@
 %}
 </select>
 <%INIT>
-my $cf = RT::Model::CustomField->new;
+my $cf = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 
 </%INIT>
 <%ARGS>
diff --git a/share/html/Admin/Elements/SelectNewGroupMembers b/share/html/Admin/Elements/SelectNewGroupMembers
index 5ba1796..b213e35 100755
--- a/share/html/Admin/Elements/SelectNewGroupMembers
+++ b/share/html/Admin/Elements/SelectNewGroupMembers
@@ -86,7 +86,7 @@ $users->limit(
 );
 $users->limit_to_privileged();
 
-my $groups = RT::Model::GroupCollection->new;
+my $groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 
 # self-recursive group membership considered harmful!
 $groups->limit(column => 'id', value => $group->id, operator => '!=' );
diff --git a/share/html/Admin/Elements/SelectRights b/share/html/Admin/Elements/SelectRights
index 7994b2f..a09079e 100755
--- a/share/html/Admin/Elements/SelectRights
+++ b/share/html/Admin/Elements/SelectRights
@@ -92,8 +92,8 @@ while ( my $ace = $acl_obj->next ) {
     $princ->load($principal);
     $princ = $princ->acl_equivalence_group;
 
-    my $acl_obj = RT::Model::ACECollection->new;
-    my $ACE = RT::Model::ACE->new;
+    my $acl_obj = RT::Model::ACECollection->new( current_user => Jifty->web->current_user );
+    my $ACE = RT::Model::ACE->new( current_user => Jifty->web->current_user );
 
 
     $acl_obj->limit_to_object( $object);
diff --git a/share/html/Admin/Global/CustomFields/Groups.html b/share/html/Admin/Global/CustomFields/Groups.html
index 2097e7e..6c2a57f 100644
--- a/share/html/Admin/Global/CustomFields/Groups.html
+++ b/share/html/Admin/Global/CustomFields/Groups.html
@@ -55,5 +55,5 @@
 </&>
 <%INIT>
   my $title = _( 'Edit Custom Fields for all groups');
-  my $object = RT::Model::Group->new;
+  my $object = RT::Model::Group->new( current_user => Jifty->web->current_user );
 </%INIT>
diff --git a/share/html/Admin/Global/CustomFields/Queue-Tickets.html b/share/html/Admin/Global/CustomFields/Queue-Tickets.html
index 132a4b7..39ccdc9 100755
--- a/share/html/Admin/Global/CustomFields/Queue-Tickets.html
+++ b/share/html/Admin/Global/CustomFields/Queue-Tickets.html
@@ -55,5 +55,5 @@
 </&>
 <%INIT>
   my $title = _( 'Edit Custom Fields for tickets in all queues');
-  my $object = RT::Model::Queue->new;
+  my $object = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 </%INIT>
diff --git a/share/html/Admin/Global/CustomFields/Queue-Transactions.html b/share/html/Admin/Global/CustomFields/Queue-Transactions.html
index d768b74..8fc9680 100755
--- a/share/html/Admin/Global/CustomFields/Queue-Transactions.html
+++ b/share/html/Admin/Global/CustomFields/Queue-Transactions.html
@@ -55,5 +55,5 @@
 </&>
 <%INIT>
   my $title = _( 'Edit Custom Fields for tickets in all queues');
-  my $object = RT::Model::Queue->new;
+  my $object = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 </%INIT>
diff --git a/share/html/Admin/Global/CustomFields/Queues.html b/share/html/Admin/Global/CustomFields/Queues.html
index 09ea5dc..9bd6d34 100644
--- a/share/html/Admin/Global/CustomFields/Queues.html
+++ b/share/html/Admin/Global/CustomFields/Queues.html
@@ -55,5 +55,5 @@
 </&>
 <%INIT>
   my $title = _( 'Edit Custom Fields for all queues');
-  my $object = RT::Model::Queue->new;
+  my $object = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 </%INIT>
diff --git a/share/html/Admin/Global/CustomFields/Users.html b/share/html/Admin/Global/CustomFields/Users.html
index d0445a6..660cdee 100644
--- a/share/html/Admin/Global/CustomFields/Users.html
+++ b/share/html/Admin/Global/CustomFields/Users.html
@@ -55,5 +55,5 @@
 </&>
 <%INIT>
   my $title = _( 'Edit Custom Fields for all users');
-  my $object = RT::Model::User->new;
+  my $object = RT::Model::User->new( current_user => Jifty->web->current_user );
 </%INIT>
diff --git a/share/html/Admin/Global/GroupRights.html b/share/html/Admin/Global/GroupRights.html
index 0abf630..4672c26 100755
--- a/share/html/Admin/Global/GroupRights.html
+++ b/share/html/Admin/Global/GroupRights.html
@@ -57,7 +57,7 @@
       
 <h1><&|/l&>System groups</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_system_internal_groups();
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -73,7 +73,7 @@
 </table>
 <h1><&|/l&>Roles</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_roles( object => RT->system );
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -89,7 +89,7 @@
 </table>
 <h1><&|/l&>User defined groups</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_user_defined_groups();    
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
diff --git a/share/html/Admin/Global/Template.html b/share/html/Admin/Global/Template.html
index 27c7975..8b25ef5 100755
--- a/share/html/Admin/Global/Template.html
+++ b/share/html/Admin/Global/Template.html
@@ -74,7 +74,7 @@ $template_obj->description, content => $template_obj->content &>
 </&>
 <%INIT>
 
-my $template_obj = RT::Model::Template->new;
+my $template_obj = RT::Model::Template->new( current_user => Jifty->web->current_user );
 my  ($title, @results, $current_subtab, $SubmitLabel);
 
 
diff --git a/share/html/Admin/Global/UserRights.html b/share/html/Admin/Global/UserRights.html
index 20c6b00..3629c9a 100755
--- a/share/html/Admin/Global/UserRights.html
+++ b/share/html/Admin/Global/UserRights.html
@@ -57,7 +57,7 @@
 <table>
 
 % while ( my $user_object = $Users->next ) {
-% my $group = RT::Model::Group->new;
+% my $group = RT::Model::Group->new( current_user => Jifty->web->current_user );
 % $group->load_acl_equivalence( $user_object );
   <tr align="right">
 	<td valign="top"><& /Elements/ShowUser, user => $user_object &></td>
@@ -83,7 +83,7 @@
 
 
 # Find out which users we want to display ACL selects for
-my $privileged = RT::Model::Group->new;
+my $privileged = RT::Model::Group->new( current_user => Jifty->web->current_user );
 $privileged->load_system_internal('privileged');
 my $Users = $privileged->user_members;
 $Users->order_by( column => $Userorder_by, order => $userorder );
diff --git a/share/html/Admin/Groups/GroupRights.html b/share/html/Admin/Groups/GroupRights.html
index ec57919..f5c2bc5 100755
--- a/share/html/Admin/Groups/GroupRights.html
+++ b/share/html/Admin/Groups/GroupRights.html
@@ -59,7 +59,7 @@
       
 <h1><&|/l&>System groups</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_system_internal_groups();
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -76,7 +76,7 @@
 </table>
 <h1><&|/l&>User defined groups</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_user_defined_groups();    
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -108,7 +108,7 @@ if (!defined $id) {
     abort(_("No Group defined"));
 }
 
-my $GroupObj = RT::Model::Group->new;
+my $GroupObj = RT::Model::Group->new( current_user => Jifty->web->current_user );
 $GroupObj->load($id) || abort(_("Couldn't load group %1",$id));
 
 my $Groups;
diff --git a/share/html/Admin/Groups/History.html b/share/html/Admin/Groups/History.html
index 5da7cd5..617d259 100644
--- a/share/html/Admin/Groups/History.html
+++ b/share/html/Admin/Groups/History.html
@@ -60,7 +60,7 @@
 </&>
 <%INIT>
 my $current_tab = 'Admin/Groups/History.html?id='.$id;
-my $GroupObj = RT::Model::Group->new;
+my $GroupObj = RT::Model::Group->new( current_user => Jifty->web->current_user );
 $GroupObj->load($id) || abort("Couldn't load group '$id'");
 my $title = _("History of the group %1", $GroupObj->name);
 </%INIT>
diff --git a/share/html/Admin/Groups/Modify.html b/share/html/Admin/Groups/Modify.html
index 6ed51b6..8d3d9c4 100755
--- a/share/html/Admin/Groups/Modify.html
+++ b/share/html/Admin/Groups/Modify.html
@@ -99,7 +99,7 @@
 my $current_tab;
 my  ($title, @results, $disabled, $enabled_checked);
 
-my $Group = RT::Model::Group->new;
+my $Group = RT::Model::Group->new( current_user => Jifty->web->current_user );
 
 if ($create) {
     $current_tab = 'Admin/Groups/Modify.html?create=1';
diff --git a/share/html/Admin/Groups/UserRights.html b/share/html/Admin/Groups/UserRights.html
index c580891..509bdc6 100755
--- a/share/html/Admin/Groups/UserRights.html
+++ b/share/html/Admin/Groups/UserRights.html
@@ -91,11 +91,11 @@ if (!defined $id) {
     abort(_("No Group defined"));
 }
 
-my $GroupObj = RT::Model::Group->new;
+my $GroupObj = RT::Model::Group->new( current_user => Jifty->web->current_user );
 $GroupObj->load($id) || abort(_("Couldn't load group %1",$id));
 
 # Find out which users we want to display ACL selects for
-my $privileged = RT::Model::Group->new;
+my $privileged = RT::Model::Group->new( current_user => Jifty->web->current_user );
 $privileged->load_system_internal('privileged');
 my $Users = $privileged->members;
 
diff --git a/share/html/Admin/Groups/index.html b/share/html/Admin/Groups/index.html
index ffd38d8..53cde1b 100755
--- a/share/html/Admin/Groups/index.html
+++ b/share/html/Admin/Groups/index.html
@@ -84,7 +84,7 @@
 </form>
 </&>
 <%INIT>
-my $Groups = RT::Model::GroupCollection->new;
+my $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 $Groups->limit_to_user_defined_groups();
 my $title = _('Select a group');
 my $caption;
diff --git a/share/html/Admin/Queues/CustomField.html b/share/html/Admin/Queues/CustomField.html
index d3ffdeb..8144627 100755
--- a/share/html/Admin/Queues/CustomField.html
+++ b/share/html/Admin/Queues/CustomField.html
@@ -57,7 +57,8 @@
 
 </&>
 <%INIT>
-my $queue_obj = RT::Model::Queue->load($queue);
+my $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+$queue_obj->load($queue);
 
 my ($title, $current_subtab);
 
diff --git a/share/html/Admin/Queues/CustomFields.html b/share/html/Admin/Queues/CustomFields.html
index fa6fbc3..455ee5f 100755
--- a/share/html/Admin/Queues/CustomFields.html
+++ b/share/html/Admin/Queues/CustomFields.html
@@ -57,11 +57,11 @@
     <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, object => $object, object_type => 'RT::Model::Queue' &>
 </&>
 <%INIT>
-my $object = RT::Model::Queue->new;
+my $object = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 
 $object->load($id) || abort( _( "Couldn't load object %1", $id ) );
 my $FriendlySubTypes =
-  RT::Model::CustomField->new
+  RT::Model::CustomField->new( current_user => Jifty->web->current_user )
   ->friendly_lookup_type( $object->custom_field_lookup_type );
 
 my $title = _( 'Edit Custom Fields for %1', $object->name );
diff --git a/share/html/Admin/Queues/GroupRights.html b/share/html/Admin/Queues/GroupRights.html
index cdaa206..b55e419 100755
--- a/share/html/Admin/Queues/GroupRights.html
+++ b/share/html/Admin/Queues/GroupRights.html
@@ -59,7 +59,7 @@
 <h1><&|/l&>System groups</&></h1>
 <table>
 % $m->callback( %ARGS, queue_obj => $queue_obj, results => \@results );
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_system_internal_groups();
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -75,7 +75,7 @@
 </table>
 <h1><&|/l&>Roles</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_roles( object => $queue_obj );
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -91,7 +91,7 @@
 </table>
 <h1><&|/l&>User defined groups</&></h1>
 <table>
-% $Groups = RT::Model::GroupCollection->new;
+% $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 % $Groups->limit_to_user_defined_groups();    
 %	while (my $Group = $Groups->next()) {
   <tr align="right"> 
@@ -121,7 +121,7 @@ if (!defined $id) {
     abort(_("No queue defined"));
 }
 
-my $queue_obj = RT::Model::Queue->new;
+my $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 $queue_obj->load($id) || abort(_("Couldn't load queue %1",$id));
 
 my $Groups;
diff --git a/share/html/Admin/Queues/People.html b/share/html/Admin/Queues/People.html
index 7026925..b1191f1 100755
--- a/share/html/Admin/Queues/People.html
+++ b/share/html/Admin/Queues/People.html
@@ -143,7 +143,7 @@ my ($field, @results, $User, $Users, $Groups, $watcher, $user_msg, $group_msg);
 
 
 
-my $queue_obj = RT::Model::Queue->new;
+my $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 $queue_obj->load($id) || abort(_("Couldn't load queue", $id));
 # }}}
 
@@ -180,7 +180,7 @@ if (!length $ARGS{'user_string'}) {
 $user_msg = _("No principals selected.");
  }
 else {
-    $Users = RT::Model::UserCollection->new;
+    $Users = RT::Model::UserCollection->new( current_user => Jifty->web->current_user );
     $Users->limit(column => $ARGS{'user_field'},
                  value => $ARGS{'user_string'},
                  operator => $ARGS{'user_op'});
@@ -190,7 +190,7 @@ if (!length $ARGS{'group_string'}) {
 $group_msg = _("No principals selected.");
  }
 else {
-$Groups = RT::Model::GroupCollection->new;
+$Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 $Groups->limit(column => 'domain', operator => '=', value => 'UserDefined');
 $Groups->limit(column => $ARGS{'group_field'},
 		value => $ARGS{'group_string'},
diff --git a/share/html/Admin/Queues/Template.html b/share/html/Admin/Queues/Template.html
index c3f40f3..d6783b6 100755
--- a/share/html/Admin/Queues/Template.html
+++ b/share/html/Admin/Queues/Template.html
@@ -72,7 +72,7 @@ $template_obj->description, content => $template_obj->content &>
 </&>
 <%INIT>
 
-my $template_obj = RT::Model::Template->new;
+my $template_obj = RT::Model::Template->new( current_user => Jifty->web->current_user );
 my  ($title, @results, $current_subtab);
 
 my $subtabs = {
@@ -118,7 +118,8 @@ if ($template_obj->id()) {
 			};
   push @results, @aresults;
 } else {
-  $queue_obj = RT::Model::Queue->load($queue);
+  $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+  $queue_obj->load($queue);
 }
 
 </%INIT>
diff --git a/share/html/Admin/Queues/Templates.html b/share/html/Admin/Queues/Templates.html
index 4323471..80e6155 100755
--- a/share/html/Admin/Queues/Templates.html
+++ b/share/html/Admin/Queues/Templates.html
@@ -57,7 +57,8 @@
 
 </&>
 <%INIT>
-my $queue_obj = RT::Model::Queue->load($id);
+my $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+$queue_obj->load($id);
 
 my ($title, $current_subtab);
 
diff --git a/share/html/Admin/Queues/UserRights.html b/share/html/Admin/Queues/UserRights.html
index f936358..d7acf88 100755
--- a/share/html/Admin/Queues/UserRights.html
+++ b/share/html/Admin/Queues/UserRights.html
@@ -60,7 +60,7 @@
 % $m->callback( %ARGS, queue_obj => $queue_obj, results => \@results );
 %	while (my $Member = $Users->next()) {
 % my $user_object = $Member->member->object();
-% my $group = RT::Model::Group->new;
+% my $group = RT::Model::Group->new( current_user => Jifty->web->current_user );
 % $group->load_acl_equivalence($Member->member);
   <tr align="right"> 
 	<td valign="top"><& /Elements/ShowUser, user => $user_object &></td>
@@ -90,11 +90,11 @@ if (!defined $id) {
     abort(_("No queue defined"));
 }
 
-my $queue_obj = RT::Model::Queue->new;
+my $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 $queue_obj->load($id) || abort(_("Couldn't load queue %1",$id));
 
 # Find out which users we want to display ACL selects for
-my $privileged = RT::Model::Group->new;
+my $privileged = RT::Model::Group->new( current_user => Jifty->web->current_user );
 $privileged->load_system_internal('privileged');
 my $Users = $privileged->members;
 
diff --git a/share/html/Admin/Queues/index.html b/share/html/Admin/Queues/index.html
index d8de1f7..608979f 100755
--- a/share/html/Admin/Queues/index.html
+++ b/share/html/Admin/Queues/index.html
@@ -76,7 +76,7 @@
 </&>
 <%INIT>
 my ($queue, $caption);
-my $queues = RT::Model::QueueCollection->new;
+my $queues = RT::Model::QueueCollection->new( current_user => Jifty->web->current_user );
 $queues->find_all_rows();
 
 if ($find_disabled_queues) {
diff --git a/share/html/Admin/Users/CustomFields.html b/share/html/Admin/Users/CustomFields.html
index 9ce63be..b9e8566 100644
--- a/share/html/Admin/Users/CustomFields.html
+++ b/share/html/Admin/Users/CustomFields.html
@@ -57,11 +57,11 @@
     <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, object => $object, object_type => 'RT::Model::User' &>
 </&>
 <%INIT>
-my $object = RT::Model::User->new;
+my $object = RT::Model::User->new( current_user => Jifty->web->current_user );
 
 $object->load($id) || abort( _( "Couldn't load object %1", $id ) );
 my $FriendlySubTypes =
-  RT::Model::CustomField->new
+  RT::Model::CustomField->new( current_user => Jifty->web->current_user )
   ->friendly_lookup_type( $object->custom_field_lookup_type );
 
 my $title = _( 'Edit Custom Fields for %1', $object->name );
diff --git a/share/html/Admin/Users/GnuPG.html b/share/html/Admin/Users/GnuPG.html
index 345463c..94a6806 100644
--- a/share/html/Admin/Users/GnuPG.html
+++ b/share/html/Admin/Users/GnuPG.html
@@ -88,7 +88,7 @@ require RT::Crypt::GnuPG;
 
 my @results;
 
-my $user_object = RT::Model::User->new;
+my $user_object = RT::Model::User->new( current_user => Jifty->web->current_user );
 $user_object->load( $id );
 unless ( $user_object->id ) {
     abort( _("Couldn't load user #%1", $id) );
diff --git a/share/html/Admin/Users/History.html b/share/html/Admin/Users/History.html
index 36f1d5d..56e96b3 100644
--- a/share/html/Admin/Users/History.html
+++ b/share/html/Admin/Users/History.html
@@ -60,7 +60,7 @@
 </&>
 <%INIT>
 my $current_tab = 'Admin/Users/History.html?id='.$id;
-my $user_object = RT::Model::User->new;
+my $user_object = RT::Model::User->new( current_user => Jifty->web->current_user );
 $user_object->load($id) || abort("Couldn't load user '$id'");
 my $title = _("History of the user %1", $user_object->name);
 </%INIT>
diff --git a/share/html/Admin/Users/Memberships.html b/share/html/Admin/Users/Memberships.html
index d7b28c7..d852962 100644
--- a/share/html/Admin/Users/Memberships.html
+++ b/share/html/Admin/Users/Memberships.html
@@ -91,7 +91,7 @@
 
 </&>
 <%INIT>
-my $user_object = RT::Model::User->new;
+my $user_object = RT::Model::User->new( current_user => Jifty->web->current_user );
 $user_object->load( $id ) || abort("Couldn't load user '$id'");
 
 my $title = _("Memberships of the user %1", $user_object->name);
@@ -100,7 +100,7 @@ my $current_tab = 'Admin/Users/Memberships.html?id='. $id;
 my @results;
 if ( $update ) {
     foreach my $gid( @add ) {
-        my $group = RT::Model::Group->new;
+        my $group = RT::Model::Group->new( current_user => Jifty->web->current_user );
         $group->load_user_defined( $gid );
         unless ( $group->id ) {
             push @results, _( "Couldn't load group #%1", $gid );
@@ -110,7 +110,7 @@ if ( $update ) {
         push @results, $msg;
     }
     foreach my $gid( @delete ) {
-        my $group = RT::Model::Group->new;
+        my $group = RT::Model::Group->new( current_user => Jifty->web->current_user );
         $group->load_user_defined( $gid );
         unless ( $group->id ) {
             push @results, _( "Couldn't load group #%1", $gid );
@@ -121,11 +121,11 @@ if ( $update ) {
     }
 }
 
-my $is_member = RT::Model::GroupCollection->new;
+my $is_member = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 $is_member->limit_to_user_defined_groups;
 $is_member->with_member( principal => $user_object->id );
 
-my $is_not_member = RT::Model::GroupCollection->new;
+my $is_not_member = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 $is_not_member->limit_to_user_defined_groups;
 $is_not_member->without_member( principal => $user_object->id );
 
diff --git a/share/html/Admin/Users/Modify.html b/share/html/Admin/Users/Modify.html
index 1003df5..bc0e1f2 100755
--- a/share/html/Admin/Users/Modify.html
+++ b/share/html/Admin/Users/Modify.html
@@ -247,7 +247,7 @@
 <%INIT>
 
 my $current_tab;
-my $user_object = RT::Model::User->new;
+my $user_object = RT::Model::User->new( current_user => Jifty->web->current_user );
 my ($title, $privilegedChecked, $enabled_checked, $disabled, $result, @results);
 
 my ($val, $msg);
diff --git a/share/html/Admin/Users/MyRT.html b/share/html/Admin/Users/MyRT.html
index 706b47d..5505948 100644
--- a/share/html/Admin/Users/MyRT.html
+++ b/share/html/Admin/Users/MyRT.html
@@ -73,7 +73,7 @@
 my @actions;
 my $current_tab;
 $current_tab = 'Admin/Users/MyRT.html?id='.$id if ($id);
-my $user_object = RT::Model::User->new;
+my $user_object = RT::Model::User->new( current_user => Jifty->web->current_user );
 $user_object->load($id) || abort("Couldn't load user '$id'");
 my $title = _("RT at a glance for the user %1", $user_object->name);
 
diff --git a/share/html/Admin/Users/index.html b/share/html/Admin/Users/index.html
index 548fe25..0370b96 100755
--- a/share/html/Admin/Users/index.html
+++ b/share/html/Admin/Users/index.html
@@ -93,7 +93,7 @@
 </&>
 <%INIT>
 my $caption;
-my $users = RT::Model::UserCollection->new;
+my $users = RT::Model::UserCollection->new( current_user => Jifty->web->current_user );
 $users->{'find_disabled_rows'} = 1 if $finddisabled_users;
 
 if ( defined($user_string) && length $user_string ) {
diff --git a/share/html/Approvals/Elements/PendingMyApproval b/share/html/Approvals/Elements/PendingMyApproval
index 4badb7f..c14f4c1 100755
--- a/share/html/Approvals/Elements/PendingMyApproval
+++ b/share/html/Approvals/Elements/PendingMyApproval
@@ -69,11 +69,11 @@
 </&>
 
 <%init>
-my $tickets = RT::Model::TicketCollection->new;
+my $tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $tickets->limit( column => 'owner', value => Jifty->web->current_user->id );
 
 # also consider AdminCcs as potential approvers.
-my $group_tickets = RT::Model::TicketCollection->new;
+my $group_tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $group_tickets->limit_watcher( value => Jifty->web->current_user->user_object->email, type => 'admin_cc' );
 
 my $created_before = RT::DateTime->new_from_string($ARGS{'created_before'});
diff --git a/share/html/Dashboards/Elements/DashboardsForObject b/share/html/Dashboards/Elements/DashboardsForObject
index 3e1051c..e31d328 100644
--- a/share/html/Dashboards/Elements/DashboardsForObject
+++ b/share/html/Dashboards/Elements/DashboardsForObject
@@ -57,7 +57,7 @@ my $privacy = RT::Dashboard->_build_privacy($object);
 
 while (my $attr = $object->attributes->next) {
     if ($attr->name =~ /^Dashboard\b/) {
-        my $dashboard = RT::Dashboard->new;
+        my $dashboard = RT::Dashboard->new( current_user => Jifty->web->current_user );
         my ($ok, $msg) = $dashboard->load($privacy, $attr->id);
 
         if (!$ok) {
diff --git a/share/html/Dashboards/Queries.html b/share/html/Dashboards/Queries.html
index fb1ca87..59f7ec5 100644
--- a/share/html/Dashboards/Queries.html
+++ b/share/html/Dashboards/Queries.html
@@ -78,7 +78,7 @@ my $current_subtab = 'Dashboards/Queries.html?id=' . $id;
 my @results;
 
 use RT::Dashboard;
-my $Dashboard = new RT::Dashboard;
+my $Dashboard = new RT::Dashboard( current_user => Jifty->web->current_user );
 my ($ok, $msg) = $Dashboard->load_by_id($id);
 $ok || abort(_("Couldn't load dashboard %1: %2", $id, $msg));
 my $title = _("Modify the queries of dashboard %1", $Dashboard->name);
@@ -115,10 +115,10 @@ for my $desc (@components) {
     $desc_of{$name} = $desc;
 }
 
-my $sys = RT::System->new;
+my $sys = RT::System->new( current_user => Jifty->web->current_user );
 my @objs = ($sys);
 
-push @objs, RT::SavedSearches->new->_privacy_objects
+push @objs, RT::SavedSearches->new( current_user => Jifty->web->current_user )->_privacy_objects
     if Jifty->web->current_user->has_right( right  => 'LoadSavedSearch',
                                           object => RT->system_user );
 
diff --git a/share/html/Dashboards/Subscription.html b/share/html/Dashboards/Subscription.html
index 9f45fa2..95f47fc 100644
--- a/share/html/Dashboards/Subscription.html
+++ b/share/html/Dashboards/Subscription.html
@@ -188,9 +188,9 @@ my $Loaded = 0;
 my $timezone = Jifty->web->current_user->user_object->time_zone || RT->config->get('time_zone');
 
 use RT::Dashboard;
-my $dashboard_obj = RT::Dashboard->new;
+my $dashboard_obj = RT::Dashboard->new( current_user => Jifty->web->current_user );
 
-my $SubscriptionObj = RT::Model::Attribute->new;
+my $SubscriptionObj = RT::Model::Attribute->new( current_user => Jifty->web->current_user );
 
 # first let's see if we already have a subscription to this dashboard_id
 for my $sub (Jifty->web->current_user->user_object->attributes->named('Subscription')) {
diff --git a/share/html/Dashboards/index.html b/share/html/Dashboards/index.html
index 709a31c..7639033 100644
--- a/share/html/Dashboards/index.html
+++ b/share/html/Dashboards/index.html
@@ -75,7 +75,7 @@
 my $title = _("Dashboards");
 use RT::Dashboard;
 
-my @objs = RT::Dashboard->new->_privacy_objects;
+my @objs = RT::Dashboard->new( current_user => Jifty->web->current_user )->_privacy_objects;
 my $dashboards = $m->comp("/Dashboards/Elements/DashboardsForObjects", objects => \@objs);
 
 my @actions;
diff --git a/share/html/Download/CustomFieldValue/dhandler b/share/html/Download/CustomFieldValue/dhandler
index f741e40..fe1e775 100644
--- a/share/html/Download/CustomFieldValue/dhandler
+++ b/share/html/Download/CustomFieldValue/dhandler
@@ -54,7 +54,7 @@ if ($arg =~ /^(\d+)\//) {
 else {
     abort("Corrupted customfieldvalue URL.");
 }
-my $OCFV = RT::Model::ObjectCustomFieldValue->new;
+my $OCFV = RT::Model::ObjectCustomFieldValue->new( current_user => Jifty->web->current_user );
 $OCFV->load($id) || abort("OCFV '$id' could not be loaded");
 
 unless ($OCFV->id) {
diff --git a/share/html/Elements/CollectionList b/share/html/Elements/CollectionList
index 729b8e1..89329b5 100644
--- a/share/html/Elements/CollectionList
+++ b/share/html/Elements/CollectionList
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <%INIT>
 if (!$collection && $class eq 'RT::Model::TicketCollection') {
-    $collection = RT::Model::TicketCollection->new;
+    $collection = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
     $collection->from_sql($query);
 }
 my $TotalFound = $collection->count_all();
diff --git a/share/html/Elements/Dashboards b/share/html/Elements/Dashboards
index 086adc1..1eec76d 100644
--- a/share/html/Elements/Dashboards
+++ b/share/html/Elements/Dashboards
@@ -58,7 +58,7 @@
 <%INIT>
 use RT::Dashboard;
 
-my @objs = RT::Dashboard->new->_privacy_objects(ShowSystem => 1);
+my @objs = RT::Dashboard->new( current_user => Jifty->web->current_user )->_privacy_objects(ShowSystem => 1);
 my $dashboard_map = $m->comp("/Dashboards/Elements/DashboardsForObjects", objects => \@objs);
 
 my @dashboards = (
diff --git a/share/html/Elements/MessageBox b/share/html/Elements/MessageBox
index ca8e6c7..0181a84 100755
--- a/share/html/Elements/MessageBox
+++ b/share/html/Elements/MessageBox
@@ -53,7 +53,7 @@
 my $message = '';
 
 if ( $quote_transaction ) {
-    my $transaction = RT::Model::Transaction->new;
+    my $transaction = RT::Model::Transaction->new( current_user => Jifty->web->current_user );
     $transaction->load( $quote_transaction );
     $message = $transaction->content( Quote => 1 );
 }
diff --git a/share/html/Elements/MyReminders b/share/html/Elements/MyReminders
index 74c846f..b29611e 100755
--- a/share/html/Elements/MyReminders
+++ b/share/html/Elements/MyReminders
@@ -67,7 +67,7 @@
 
 <%init>
 return unless RT->config->get('enable_reminders');
-my $reminders = RT::Model::TicketCollection->new;
+my $reminders = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $reminders->from_sql('(Owner = "Nobody" OR Owner = "'.Jifty->web->current_user->name.'")' .
     ' AND type = "reminder" AND (Status = "new" OR Status = "open")'); 
 $reminders->order_by(column => 'Due', order => 'DESC');
diff --git a/share/html/Elements/QueueSummary b/share/html/Elements/QueueSummary
index 262e049..88670a4 100644
--- a/share/html/Elements/QueueSummary
+++ b/share/html/Elements/QueueSummary
@@ -76,7 +76,7 @@ if ($cache && Jifty->web->session->get($cache)) {
     @queues = @{Jifty->web->session->get($cache)};
 }
 else {
-    my $Queues = RT::Model::QueueCollection->new;
+    my $Queues = RT::Model::QueueCollection->new( current_user => Jifty->web->current_user );
     $Queues->find_all_rows();
     @queues = grep $queue_filter->($_), @{$Queues->items_array_ref};
 
@@ -92,7 +92,7 @@ else {
 }
 
 
-my $Tickets = RT::Model::TicketCollection->new;
+my $Tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 </%INIT>
 <%ARGS>
 $cache => undef
diff --git a/share/html/Elements/SelectGroups b/share/html/Elements/SelectGroups
index df40926..4a86d88 100755
--- a/share/html/Elements/SelectGroups
+++ b/share/html/Elements/SelectGroups
@@ -57,7 +57,7 @@
 <& /Elements/SelectMatch, name => 'group_op', default => $group_op &>
 <input size="8" name="group_string" value="<% $group_string %>" />
 <%INIT>
-my $CFs = RT::Model::CustomFieldCollection->new;
+my $CFs = RT::Model::CustomFieldCollection->new( current_user => Jifty->web->current_user );
 $CFs->limit_to_child_type('RT::Model::Group');
 $CFs->order_by( column => 'name' );
 </%INIT>
diff --git a/share/html/Elements/SelectOwner b/share/html/Elements/SelectOwner
index 9fb8e8a..2f281a6 100755
--- a/share/html/Elements/SelectOwner
+++ b/share/html/Elements/SelectOwner
@@ -76,7 +76,7 @@ if ($ticket_obj) {
 } else {
 # Let's check rights on an empty queue object. that will do a search
 # for any queue.
-    my $queue = RT::Model::Queue->new;
+    my $queue = RT::Model::Queue->new( current_user => Jifty->web->current_user );
     push( @objects, $queue );
 }
 
@@ -92,7 +92,7 @@ my $isSU = Jifty->web->current_user
     ->has_right( right => 'SuperUser', object => RT->system );
 
 foreach my $object (@objects) {
-    my $Users = RT::Model::UserCollection->new;
+    my $Users = RT::Model::UserCollection->new( current_user => Jifty->web->current_user );
     $Users->who_have_right(
         right               => 'OwnTicket',
         object              => $object,
@@ -107,7 +107,7 @@ foreach my $object (@objects) {
     }
 }
 if ($default && $default != RT->nobody->id && !$user_uniq_hash{$default}) {
-    $user_uniq_hash{$default} = RT::Model::User->new;
+    $user_uniq_hash{$default} = RT::Model::User->new( current_user => Jifty->web->current_user );
     $user_uniq_hash{$default}->load($default);
 }
 
diff --git a/share/html/Elements/SelectTicketSortBy b/share/html/Elements/SelectTicketSortBy
index fcd088c..9d33c90 100755
--- a/share/html/Elements/SelectTicketSortBy
+++ b/share/html/Elements/SelectTicketSortBy
@@ -52,7 +52,7 @@
 </select>
 
 <%INIT>
-my $tickets = RT::Model::TicketCollection->new;
+my $tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 my @sortfields = $tickets->sort_fields();
 
 </%INIT>
diff --git a/share/html/Elements/SelectUsers b/share/html/Elements/SelectUsers
index 4cd96e0..d805c42 100755
--- a/share/html/Elements/SelectUsers
+++ b/share/html/Elements/SelectUsers
@@ -57,7 +57,7 @@
 <& /Elements/SelectMatch, name => 'user_op', default => $user_op &>
 <input size="8" name="user_string" value="<% $user_string %>" />
 <%INIT>
-my $CFs = RT::Model::CustomFieldCollection->new;
+my $CFs = RT::Model::CustomFieldCollection->new( current_user => Jifty->web->current_user );
 $CFs->limit_to_child_type('RT::Model::User');
 $CFs->order_by( column => 'name' );
 </%INIT>
diff --git a/share/html/Elements/ShowMemberships b/share/html/Elements/ShowMemberships
index 70a21a6..2c50f28 100644
--- a/share/html/Elements/ShowMemberships
+++ b/share/html/Elements/ShowMemberships
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <ul>
 % while ( my $GroupMember = $GroupMembers->next ) {
-%    my $Group = RT::Model::Group->new;
+%    my $Group = RT::Model::Group->new( current_user => Jifty->web->current_user );
 %    $Group->load($GroupMember->group_id) or next;
 %    if ($Group->domain eq 'UserDefined') {
 <li><a href="<%RT->config->get('web_path')%>/Admin/Groups/Modify.html?id=<% $Group->id %>"><% $Group->name %></a></li>
@@ -57,7 +57,7 @@
 % }
 </ul>
 <%INIT>
-my $GroupMembers = RT::Model::GroupMemberCollection->new;
+my $GroupMembers = RT::Model::GroupMemberCollection->new( current_user => Jifty->web->current_user );
 $GroupMembers->limit( column => 'member_id', value => $user_object->id );
 my $alias = $GroupMembers->join(
     type => 'left',
diff --git a/share/html/Elements/ShowUser b/share/html/Elements/ShowUser
index 539413c..b996fce 100644
--- a/share/html/Elements/ShowUser
+++ b/share/html/Elements/ShowUser
@@ -50,7 +50,7 @@
 # $user is an RT::Model::User object
 # $address is Email::Address object
 if ( !$user && $address ) {
-    $user = RT::Model::User->new;
+    $user = RT::Model::User->new( current_user => Jifty->web->current_user );
     $user->load_by_email( $address->address );
     unless ( $user->id ) {
         $m->comp( '/Elements/ShowUserVerbose', address => $address );
diff --git a/share/html/Helpers/Autocomplete/CustomFieldValues b/share/html/Helpers/Autocomplete/CustomFieldValues
index b990b54..f1612d4 100644
--- a/share/html/Helpers/Autocomplete/CustomFieldValues
+++ b/share/html/Helpers/Autocomplete/CustomFieldValues
@@ -61,7 +61,7 @@ while( my($k, $v) = each %ARGS ) {
     last;
 }
 $m->abort unless $CustomField;
-my $CustomFieldObj = RT::Model::CustomField->new;
+my $CustomFieldObj = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
 $CustomFieldObj->load( $CustomField );
 my $values = $CustomFieldObj->values;
 $values->limit(
diff --git a/share/html/Prefs/Quicksearch.html b/share/html/Prefs/Quicksearch.html
index 507d288..8298067 100644
--- a/share/html/Prefs/Quicksearch.html
+++ b/share/html/Prefs/Quicksearch.html
@@ -74,7 +74,7 @@ my $title = _("Customize").' '._("Quick search");
 # The queue list is not loaded from cache, so it might be a bit inconsistent
 my $user = Jifty->web->current_user->user_object;
 my $unwanted = $user->preferences('QuickSearch', {});
-my $Queues = RT::Model::QueueCollection->new;
+my $Queues = RT::Model::QueueCollection->new( current_user => Jifty->web->current_user );
 $Queues->find_all_rows;
 my @queues = grep {$_->current_user_has_right('ShowTicket')} @{$Queues->items_array_ref};
 
diff --git a/share/html/REST/1.0/Forms/attachment/default b/share/html/REST/1.0/Forms/attachment/default
index c62d337..79c98f1 100644
--- a/share/html/REST/1.0/Forms/attachment/default
+++ b/share/html/REST/1.0/Forms/attachment/default
@@ -54,7 +54,7 @@ $args => undef
 <%INIT>
 my @data;
 my ($c, $o, $k, $e) = ("", [], {}, "");
-my $attachment = RT::Model::Attachment->new;
+my $attachment = RT::Model::Attachment->new( current_user => Jifty->web->current_user );
 
 $attachment->load($id);
 unless ( $attachment->Id ) {
diff --git a/share/html/REST/1.0/Forms/group/customfields b/share/html/REST/1.0/Forms/group/customfields
index 35a5271..9bb8be9 100644
--- a/share/html/REST/1.0/Forms/group/customfields
+++ b/share/html/REST/1.0/Forms/group/customfields
@@ -55,7 +55,7 @@ $changes => {}
 <%perl>
 my @comments;
 my ($c, $o, $k, $e) = ("", [], {}, 0);
-my $group = RT::Model::Group->new;
+my $group = RT::Model::Group->new( current_user => Jifty->web->current_user );
 
 $group->load($id);
 if (!$group->Id) {
diff --git a/share/html/REST/1.0/Forms/group/default b/share/html/REST/1.0/Forms/group/default
index cdeadc1..f42845a 100644
--- a/share/html/REST/1.0/Forms/group/default
+++ b/share/html/REST/1.0/Forms/group/default
@@ -57,7 +57,7 @@ $changes => {}
 my @comments;
 my ($c, $o, $k, $e) = ("", [], {}, 0);
 my %data = %$changes;
-my $group = RT::Model::Group->new;
+my $group = RT::Model::Group->new( current_user => Jifty->web->current_user );
 my @fields = qw(Name Description);
 my %fields = map { lc $_ => $_ } @fields;
 
diff --git a/share/html/REST/1.0/Forms/group/ns b/share/html/REST/1.0/Forms/group/ns
index 6c53166..63f54ef 100644
--- a/share/html/REST/1.0/Forms/group/ns
+++ b/share/html/REST/1.0/Forms/group/ns
@@ -53,7 +53,7 @@ $id
 <%perl>
 use RT::Model::Groups;
 
-my $groups = RT::Model::Groups->new;
+my $groups = RT::Model::Groups->new( current_user => Jifty->web->current_user );
 $groups->limit(column => 'name', operator => '=', value => $id);
 if ($groups->count == 0) {
     return (0, "No group named $id exists.");
diff --git a/share/html/REST/1.0/Forms/queue/customfields b/share/html/REST/1.0/Forms/queue/customfields
index 77857c9..d40c2b0 100644
--- a/share/html/REST/1.0/Forms/queue/customfields
+++ b/share/html/REST/1.0/Forms/queue/customfields
@@ -55,7 +55,7 @@ $changes => {}
 <%perl>
 my @comments;
 my ($c, $o, $k, $e) = ("", [], {}, 0);
-my $queue = RT::Model::Queue->new;
+my $queue = RT::Model::Queue->new( current_user => Jifty->web->current_user );
 
 $queue->load($id);
 if (!$queue->id) {
diff --git a/share/html/REST/1.0/Forms/queue/default b/share/html/REST/1.0/Forms/queue/default
index dc4201e..49069fb 100755
--- a/share/html/REST/1.0/Forms/queue/default
+++ b/share/html/REST/1.0/Forms/queue/default
@@ -57,7 +57,7 @@ $changes => {}
 my @comments;
 my ($c, $o, $k, $e) = ("", [], {}, 0);
 my %data = %$changes;
-my $queue = RT::Model::Queue->new;
+my $queue = RT::Model::Queue->new( current_user => Jifty->web->current_user ) ;
 my @fields = qw(name description correspond_address comment_address
                 initial_priority final_priority default_due_in);
 my %fields = map { lc $_ => $_ } @fields;
diff --git a/share/html/REST/1.0/Forms/queue/ns b/share/html/REST/1.0/Forms/queue/ns
index 0d1822b..5d31389 100755
--- a/share/html/REST/1.0/Forms/queue/ns
+++ b/share/html/REST/1.0/Forms/queue/ns
@@ -53,7 +53,7 @@ $id
 <%perl>
 use RT::Model::QueueCollection;
 
-my $queues = RT::Model::QueueCollection->new;
+my $queues = RT::Model::QueueCollection->new( current_user => Jifty->web->current_user );
 $queues->limit(column => 'name', operator => '=', value => $id);
 if ($queues->count == 0) {
     return (0, "No queue named $id exists.");
diff --git a/share/html/REST/1.0/Forms/queue/ticketcustomfields b/share/html/REST/1.0/Forms/queue/ticketcustomfields
index cfbaa7f..130d400 100644
--- a/share/html/REST/1.0/Forms/queue/ticketcustomfields
+++ b/share/html/REST/1.0/Forms/queue/ticketcustomfields
@@ -71,7 +71,7 @@ if (%$changes) {
 my @data;
 
 push @data, [ id => "queue/" . $queue->Id ];
-my $qcfs = RT::CustomFields->new;
+my $qcfs = RT::CustomFields->new(current_user => Jifty->web->current_user);
 $qcfs->limit_to_global_or_queue($id);
 while ( my $qcf = $qcfs->next() ) {
     if ( $format eq "l" ) {
diff --git a/share/html/REST/1.0/Forms/ticket/attachments b/share/html/REST/1.0/Forms/ticket/attachments
index 9fe9ad0..6ef156d 100755
--- a/share/html/REST/1.0/Forms/ticket/attachments
+++ b/share/html/REST/1.0/Forms/ticket/attachments
@@ -54,7 +54,7 @@ $args => undef
 <%INIT>
 my @data;
 my ($c, $o, $k, $e) = ("", [], {}, "");
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 
 $ticket->load($id);
 unless ($ticket->id) {
@@ -76,7 +76,7 @@ if ($aid) {
     unless ($aid =~ /^\d+$/) {
         return [ "# Invalid attachment id: $aid", [], {}, 1 ];
     }
-    my $attachment = RT::Model::Attachment->new;
+    my $attachment = RT::Model::Attachment->new( current_user => Jifty->web->current_user );
     $attachment->load($aid);
     unless ($attachment->id eq $aid) {
         return [ "# Invalid attachment id: $aid", [], {}, 1 ];
diff --git a/share/html/REST/1.0/Forms/ticket/comment b/share/html/REST/1.0/Forms/ticket/comment
index 94487b9..abf309a 100755
--- a/share/html/REST/1.0/Forms/ticket/comment
+++ b/share/html/REST/1.0/Forms/ticket/comment
@@ -60,7 +60,7 @@ use File::Temp qw(tempfile);
 Jifty->log->debug("Got ticket id=$id for comment");
 Jifty->log->debug("Got args @{[keys(%changes)]}.");
 
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my ($c, $o, $k, $e) = ("", [], {}, 0);
 
 # http://.../REST/1.0/ticket/1/comment
diff --git a/share/html/REST/1.0/Forms/ticket/default b/share/html/REST/1.0/Forms/ticket/default
index a404988..70fd7cc 100755
--- a/share/html/REST/1.0/Forms/ticket/default
+++ b/share/html/REST/1.0/Forms/ticket/default
@@ -62,7 +62,7 @@ my $cf_spec = RT::Interface::REST->custom_field_spec(1);
 my @comments;
 my ($c, $o, $k, $e) = ("", [], {}, 0);
 my %data   = %$changes;
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user ) ;
 my @dates  = qw(created starts started due resolved told last_updated);
 my @people = qw(requestors cc admin_cc);
 my @create = qw(queue requestor subject cc admin_cc owner status priority
@@ -92,7 +92,8 @@ else {
     if (!keys(%data)) {
         # GET ticket/new: Return a suitable default form.
         # We get defaults from queue/1 (XXX: What if it isn't there?).
-        my $queue = RT::Model::Queue->new;
+        my $queue = RT::Model::Queue->new ( current_user =>
+                Jifty->web->current_user ) ;
         $queue->load(1);
 
         my $due = RT::DateTime->now;
@@ -141,7 +142,8 @@ else {
             }
             # Set custom field
             elsif ($k =~ /^$cf_spec/) {
-                my $cf = RT::Model::CustomField->new;
+                my $cf = RT::Model::CustomField->new(current_user =>
+                        Jifty->web->current_user );
                 my $cfk = $1 || $2;
                 unless($cf->load_by_name( name => $cfk )) {
                     push @comments, "# Invalid custom field name ($cfk)";
diff --git a/share/html/REST/1.0/Forms/ticket/history b/share/html/REST/1.0/Forms/ticket/history
index a7ea267..d9e3a8a 100755
--- a/share/html/REST/1.0/Forms/ticket/history
+++ b/share/html/REST/1.0/Forms/ticket/history
@@ -54,7 +54,7 @@ $format => undef
 $fields => undef
 </%ARGS>
 <%INIT>
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my ($c, $o, $k, $e) = ("", [], {}, "");
 
 $ticket->load($id);
@@ -101,7 +101,7 @@ if ($type) {
 
 if ($tid) {
     my @data;
-    my $t = RT::Model::Transaction->new;
+    my $t = RT::Model::Transaction->new( current_user => Jifty->web->current_user );
     
     # this paragraph limits the transaction ID query to transactions on this ticket. 
     # Otherwise you can query any transaction from any ticket, which makes no sense.
@@ -138,7 +138,7 @@ if ($tid) {
 
 
     if (!%$fields || exists $fields->{lc 'content'}) {    
-	my $creator = RT::Model::User->new;
+	my $creator = RT::Model::User->new( current_user => Jifty->web->current_user );
 	$creator->load($t->creator);
 	push @data, [ Creator    => $creator->name   ];
     }
diff --git a/share/html/REST/1.0/Forms/ticket/links b/share/html/REST/1.0/Forms/ticket/links
index bb1da51..fc35bb2 100755
--- a/share/html/REST/1.0/Forms/ticket/links
+++ b/share/html/REST/1.0/Forms/ticket/links
@@ -55,7 +55,7 @@ $changes => undef
 <%INIT>
 my @data;
 $format ||= 's';
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 $ticket->load($id);
 if (!$ticket->id) {
     return [ "# Ticket $id does not exist.", [], {}, 1 ];
@@ -97,7 +97,7 @@ if ($changes) {
             foreach my $nkey (@{vsplit($val)}) {
                 if ($nkey =~ /^\d+$/) {
                     my $uri = RT::URI->new();
-                    my $tick = RT::Model::Ticket->new;
+                    my $tick = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
                     $tick->load($nkey);
                     if ($tick->id) {
                         $nkey = $uri->from_object($tick);
diff --git a/share/html/REST/1.0/Forms/ticket/merge b/share/html/REST/1.0/Forms/ticket/merge
index fb4bba9..0680585 100755
--- a/share/html/REST/1.0/Forms/ticket/merge
+++ b/share/html/REST/1.0/Forms/ticket/merge
@@ -56,8 +56,8 @@ use RT::Interface::REST;
 
 my $into = $args;
 
-my $ticket = RT::Model::Ticket->new;
-my $ticket_into = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
+my $ticket_into = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my ($c, $o, $k, $e) = ("", [], {}, 0);
 
 # http://.../REST/1.0/ticket/1/merge/6  (merges ticket 1 into ticket 6)
diff --git a/share/html/REST/1.0/Forms/ticket/take b/share/html/REST/1.0/Forms/ticket/take
index e4d3727..c3cef88 100755
--- a/share/html/REST/1.0/Forms/ticket/take
+++ b/share/html/REST/1.0/Forms/ticket/take
@@ -54,7 +54,7 @@ $id
 <%INIT>
 use RT::Interface::REST;
 
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my ($c, $o, $k, $e) = ("", [], {}, 0);
 
 # http://.../REST/1.0/ticket/1/take
diff --git a/share/html/REST/1.0/Forms/transaction/default b/share/html/REST/1.0/Forms/transaction/default
index d88435b..e12f42d 100644
--- a/share/html/REST/1.0/Forms/transaction/default
+++ b/share/html/REST/1.0/Forms/transaction/default
@@ -54,7 +54,7 @@ $format => undef
 $fields => undef
 </%ARGS>
 <%INIT>
-my $trans = RT::Model::TransactionCollection->new;
+my $trans = RT::Model::TransactionCollection->new( current_user => Jifty->web->current_user );
 my ($c, $o, $k, $e) = ("", [], {} , "");
 
 chomp $args;
@@ -65,7 +65,7 @@ $trans->limit(column => 'id', operator => '=', value => $tid);
 
 if ($tid) {
     my @data;
-    my $t = RT::Model::Transaction->new;
+    my $t = RT::Model::Transaction->new( current_user => Jifty->web->current_user );
     $t->load($tid);
     if ($format eq "l") {
       push @data, [ id    => $t->id   ];
@@ -89,7 +89,7 @@ if ($tid) {
        	if (!%$fields || exists $fields->{lc 'content'});
       
       if (!%$fields || exists $fields->{lc 'content'}) {    
-  	    my $creator = RT::Model::User->new;
+  	    my $creator = RT::Model::User->new( current_user => Jifty->web->current_user );
   	    $creator->load($t->creator);
   	    push @data, [ Creator    => $creator->name   ];
       }
diff --git a/share/html/REST/1.0/Forms/user/default b/share/html/REST/1.0/Forms/user/default
index 72bff3b..aa20af4 100755
--- a/share/html/REST/1.0/Forms/user/default
+++ b/share/html/REST/1.0/Forms/user/default
@@ -56,7 +56,7 @@ $changes => {}
 my @comments;
 my ($c, $o, $k, $e) = ("", [], {}, 0);
 my %data = %$changes;
-my $user = RT::Model::User->new ;
+my $user = RT::Model::User->new( current_user => Jifty->web->current_user ) ;
 my @fields = qw(real_name nickname gecos organization address1 address2 city
                 state zip country home_phone work_phone mobile_phone pager_phone
                 freeform_contact_info comments signature lang email_encoding
diff --git a/share/html/REST/1.0/search/ticket b/share/html/REST/1.0/search/ticket
index 5f76470..e210685 100755
--- a/share/html/REST/1.0/search/ticket
+++ b/share/html/REST/1.0/search/ticket
@@ -57,7 +57,7 @@ $fields => undef
 use RT::Interface::REST;
 my $output = "";
 my $status = "200 Ok";
-my $tickets = RT::Model::TicketCollection->new;
+my $tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 
 # Parse and validate any field specifications.
 my $field  = RT::Interface::REST->field_spec;
diff --git a/share/html/REST/1.0/ticket/comment b/share/html/REST/1.0/ticket/comment
index 1df336e..1664298 100755
--- a/share/html/REST/1.0/ticket/comment
+++ b/share/html/REST/1.0/ticket/comment
@@ -56,7 +56,7 @@ use LWP::MediaTypes;
 use RT::Interface::REST;
 use File::Temp qw(tempfile);
 
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my $object = $r->path_info;
 my $status = "200 Ok";
 my $output;
diff --git a/share/html/REST/1.0/ticket/link b/share/html/REST/1.0/ticket/link
index afff6c1..b3c5853 100755
--- a/share/html/REST/1.0/ticket/link
+++ b/share/html/REST/1.0/ticket/link
@@ -57,7 +57,7 @@ $to
 use RT::Interface::REST;
 my $output;
 my $status = "200 Ok";
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my $object = $r->path_info;
 
 my @fields = qw(DependsOn DependedOnBy RefersTo ReferredToBy HasMember MemberOf);
diff --git a/share/html/REST/1.0/ticket/merge b/share/html/REST/1.0/ticket/merge
index d33fe4b..3aa909e 100755
--- a/share/html/REST/1.0/ticket/merge
+++ b/share/html/REST/1.0/ticket/merge
@@ -56,7 +56,7 @@ use RT::Interface::REST;
 
 my $output;
 my $status = "200 Ok";
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my $object = $r->path_info;
 
 # http://.../REST/1.0/ticket/merge/1
diff --git a/share/html/Search/Bulk.html b/share/html/Search/Bulk.html
index 6350097..8561f3d 100755
--- a/share/html/Search/Bulk.html
+++ b/share/html/Search/Bulk.html
@@ -145,7 +145,7 @@
 </&>
 
 <%perl>
-my $cfs = RT::Model::CustomFieldCollection->new;
+my $cfs = RT::Model::CustomFieldCollection->new( current_user => Jifty->web->current_user );
 $cfs->limit_to_global();
 $cfs->limit_to_queue($_) for keys %$seen_queues;
 </%perl>
@@ -213,7 +213,7 @@ $format ||= RT->config->get('default_search_result_format');
 # inject _CHECKBOX to the first field.
 $format =~ s/'?([^']+)'?,/'___CHECKBOX__$1',/;
 
-my $Tickets = RT::Model::TicketCollection->new;
+my $Tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $Tickets->from_sql($query);
 
 
@@ -326,7 +326,7 @@ while ( my $Ticket = $Tickets->next ) {
             my ( $cfid, $cf );
             if ( $key =~ /CustomField-(\d+)-/ ) {
                 $cfid = $1;
-                $cf   = RT::Model::CustomField->new;
+                $cf   = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
                 $cf->load($cfid);
             }
             else {next}
@@ -370,7 +370,7 @@ while ( my $Ticket = $Tickets->next ) {
     @results = ( @results, @tempresults );
 }
 
-my $TxnCFs = RT::Model::CustomFieldCollection->new;
+my $TxnCFs = RT::Model::CustomFieldCollection->new( current_user => Jifty->web->current_user );
 $TxnCFs->limit_to_lookup_type( RT::Model::Transaction->custom_field_lookup_type );
 $TxnCFs->limit_to_global_or_object_id( sort keys %queues );
 
diff --git a/share/html/Search/Elements/PickCFs b/share/html/Search/Elements/PickCFs
index 3015ffe..f08aeee 100644
--- a/share/html/Search/Elements/PickCFs
+++ b/share/html/Search/Elements/PickCFs
@@ -49,10 +49,10 @@
 <& ConditionRow, condition => $_ &>
 % }
 <%INIT>
-my $CustomFields = RT::Model::CustomFieldCollection->new;
+my $CustomFields = RT::Model::CustomFieldCollection->new( current_user => Jifty->web->current_user );
 foreach my $id (keys %queues) {
     # Gotta load up the $queue object, since queues get stored by name now. my $id
-    my $queue = RT::Model::Queue->new;
+    my $queue = RT::Model::Queue->new( current_user => Jifty->web->current_user );
     $queue->load($id);
     unless ($queue->id) {
         # XXX TODO: This ancient code dates from a former developer
diff --git a/share/html/Search/Elements/SelectGroup b/share/html/Search/Elements/SelectGroup
index fad4570..f730b49 100644
--- a/share/html/Search/Elements/SelectGroup
+++ b/share/html/Search/Elements/SelectGroup
@@ -55,7 +55,7 @@
 </select>
 
 <%INIT>
-my $groups = RT::Model::GroupCollection->new;
+my $groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
 $groups->limit(column => 'domain', operator => '=', value => $domain);
 
 </%INIT>
diff --git a/share/html/Search/Results.rdf b/share/html/Search/Results.rdf
index 6f50658..62018ee 100644
--- a/share/html/Search/Results.rdf
+++ b/share/html/Search/Results.rdf
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <%INIT>
 
-my $Tickets = RT::Model::TicketCollection->new;
+my $Tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $Tickets->from_sql($ARGS{'query'});
 if ($order_by =~ /\|/) {
     # Multiple Sorts
diff --git a/share/html/Search/Results.tsv b/share/html/Search/Results.tsv
index 49b2b33..15050bc 100644
--- a/share/html/Search/Results.tsv
+++ b/share/html/Search/Results.tsv
@@ -51,7 +51,7 @@ $order => 'ASC'
 </%ARGS>
 <%INIT>
 
-my $Tickets = RT::Model::TicketCollection->new;
+my $Tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $Tickets->from_sql( $ARGS{'query'} );
 if ( $order_by =~ /\|/ ) {
 
diff --git a/share/html/Search/Simple.html b/share/html/Search/Simple.html
index abc8170..d8dc3b4 100644
--- a/share/html/Search/Simple.html
+++ b/share/html/Search/Simple.html
@@ -79,7 +79,7 @@ my $title = _("Search for tickets");
 use RT::Search::Googleish;
 
 if ($q) {
-    my $tickets = RT::Model::TicketCollection->new;
+    my $tickets = RT::Model::TicketCollection->new(current_user => Jifty->web->current_user);
     if ($q =~ /^#?(\d+)$/) {
         RT::Interface::Web::redirect(Jifty->web->url."Ticket/Display.html?id=".$1);
     }
diff --git a/share/html/SelfService/Create.html b/share/html/SelfService/Create.html
index 38d994e..387d08c 100755
--- a/share/html/SelfService/Create.html
+++ b/share/html/SelfService/Create.html
@@ -119,7 +119,8 @@ $queue => undef
 </%args>
 <%init>
 my @results;
-my $queue_obj = RT::Model::Queue->load($queue);
+my $queue_obj = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+$queue_obj->load($queue);
 my $CFs = $queue_obj->ticket_custom_fields();
 my $ValidCFs = $m->comp(
     '/Elements/ValidateCustomFields',
diff --git a/share/html/SelfService/CreateTicketInQueue.html b/share/html/SelfService/CreateTicketInQueue.html
index 214c2ea..33c3c92 100755
--- a/share/html/SelfService/CreateTicketInQueue.html
+++ b/share/html/SelfService/CreateTicketInQueue.html
@@ -59,6 +59,6 @@
 </dl>
 </&>
 <%init>
-my $queues = RT::Model::QueueCollection->new;
+my $queues = RT::Model::QueueCollection->new( current_user => Jifty->web->current_user );
 $queues->find_all_rows;
 </%init>
diff --git a/share/html/SelfService/Display.html b/share/html/SelfService/Display.html
index de335d9..7a2a347 100755
--- a/share/html/SelfService/Display.html
+++ b/share/html/SelfService/Display.html
@@ -96,7 +96,7 @@ my ( $field, @results );
 # to deal
 my @id = ( ref $id eq 'ARRAY' ) ? @{$id} : ($id);
 
-my $Ticket = RT::Model::Ticket->new;
+my $Ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 
 # store the uploaded attachment in session
 if ( $ARGS{'attach'} ) {    # attachment?
@@ -117,7 +117,7 @@ if ( defined ($id[0]) && $id[0] eq 'new' ) {
 
     # {{{ Create a new ticket
 
-    my $queue = RT::Model::Queue->new;
+    my $queue = RT::Model::Queue->new( current_user => Jifty->web->current_user );
     unless ( $queue->load( $ARGS{'queue'} ) ) {
         $m->comp( 'Error.html', why => _('Queue not found') );
         $m->abort;
diff --git a/share/html/Ticket/Attachment/WithHeaders/dhandler b/share/html/Ticket/Attachment/WithHeaders/dhandler
index 9774ccc..42ba221 100644
--- a/share/html/Ticket/Attachment/WithHeaders/dhandler
+++ b/share/html/Ticket/Attachment/WithHeaders/dhandler
@@ -53,7 +53,7 @@
         abort("Corrupted attachment URL");
     }
 
-    my $AttachmentObj = RT::Model::Attachment->new;
+    my $AttachmentObj = RT::Model::Attachment->new( current_user => Jifty->web->current_user );
     $AttachmentObj->load( $id );
     unless ( $AttachmentObj->id ) {
         abort("Couldn't load attachment #$id");
diff --git a/share/html/Ticket/Attachment/dhandler b/share/html/Ticket/Attachment/dhandler
index 10d2e0d..6225666 100755
--- a/share/html/Ticket/Attachment/dhandler
+++ b/share/html/Ticket/Attachment/dhandler
@@ -55,7 +55,7 @@
     else {
         abort("Corrupted attachment URL.");
     }
-     my $AttachmentObj = RT::Model::Attachment->new;
+     my $AttachmentObj = RT::Model::Attachment->new( current_user => Jifty->web->current_user );
      $AttachmentObj->load($attach) || abort("Attachment '$attach' could not be loaded");
 
 
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index d676305..34944f8 100755
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -109,7 +109,8 @@ unless ($id || $ticket_obj) {
 if ($ARGS{'id'} eq 'new') {
     # {{{ Create a new ticket
 
-    my $queue = RT::Model::Queue->load($ARGS{'queue'});
+    my $queue = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+    $queue->load($ARGS{'queue'});
     unless ( $queue->id ) {
         abort('Queue not found');
     }
diff --git a/share/html/Ticket/Elements/AddWatchers b/share/html/Ticket/Elements/AddWatchers
index 4b895fd..c303303 100755
--- a/share/html/Ticket/Elements/AddWatchers
+++ b/share/html/Ticket/Elements/AddWatchers
@@ -99,13 +99,13 @@
 my ($Users, $Groups);
 
 if ($user_string) {
-    $Users = RT::Model::UserCollection->new;
+    $Users = RT::Model::UserCollection->new( current_user => Jifty->web->current_user );
     $Users->limit(column => $user_field, value => $user_string, operator => $user_op);
     $Users->limit_to_privileged if $privileged_only;
      }
 
 if ($group_string) {
-    $Groups = RT::Model::GroupCollection->new;
+    $Groups = RT::Model::GroupCollection->new( current_user => Jifty->web->current_user );
     $Groups->limit(column => 'domain', operator => '=', value => 'UserDefined');
     $Groups->limit(column => $group_field, value => $group_string, operator => $group_op);
      }
diff --git a/share/html/Ticket/Elements/Bookmark b/share/html/Ticket/Elements/Bookmark
index 9e7330b..0acb3db 100644
--- a/share/html/Ticket/Elements/Bookmark
+++ b/share/html/Ticket/Elements/Bookmark
@@ -54,7 +54,7 @@ my $bookmarked = $bookmarks->{ $id }; # we still not sure if it's undef
 
 my @ids;
 if ( $toggle || !$bookmarked ) {
-    my $ticket = RT::Model::Ticket->new;
+    my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
     $ticket->load( $id );
     return unless $id = $ticket->id;
 
diff --git a/share/html/Ticket/Elements/FindAttachments b/share/html/Ticket/Elements/FindAttachments
index 4873348..db19ae8 100644
--- a/share/html/Ticket/Elements/FindAttachments
+++ b/share/html/Ticket/Elements/FindAttachments
@@ -53,7 +53,7 @@ my %documents;
 
 # We force the cache of ticket transactions to get populated up front. otherwise, the 
 # code that looks at attachments will look at each one in turn.
-my $attachments = RT::Model::AttachmentCollection->new;
+my $attachments = RT::Model::AttachmentCollection->new( current_user => Jifty->web->current_user );
 
 $attachments->query_columns( qw( id filename content_type headers subject parent content_encoding content_type transaction_id created));
 
diff --git a/share/html/Ticket/Elements/LoadTextAttachments b/share/html/Ticket/Elements/LoadTextAttachments
index c6bb3ad..37f0686 100644
--- a/share/html/Ticket/Elements/LoadTextAttachments
+++ b/share/html/Ticket/Elements/LoadTextAttachments
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <%INIT>
 
-my $attachments = RT::Model::AttachmentCollection->new;
+my $attachments = RT::Model::AttachmentCollection->new( current_user => Jifty->web->current_user );
 
 $attachments->query_columns( qw(id content content_type transaction_id content_encoding));
 
diff --git a/share/html/Ticket/Elements/PreviewScrips b/share/html/Ticket/Elements/PreviewScrips
index e78e2f8..a7d6c3a 100755
--- a/share/html/Ticket/Elements/PreviewScrips
+++ b/share/html/Ticket/Elements/PreviewScrips
@@ -210,7 +210,7 @@ my $Message = make_mime_entity(
     body    => $ARGS{'content'},
 );
 
-my $ticket_obj = RT::Model::Ticket->new;
+my $ticket_obj = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 my ( $id, $txn, $msg ) = $ticket_obj->create(
     type            => $ARGS{'type'} || 'ticket',
     queue           => $ARGS{'queue'},
diff --git a/share/html/Ticket/Elements/ShowHistory b/share/html/Ticket/Elements/ShowHistory
index 523cf86..c8cca70 100755
--- a/share/html/Ticket/Elements/ShowHistory
+++ b/share/html/Ticket/Elements/ShowHistory
@@ -132,7 +132,7 @@ while ( my $Transaction = $Transactions->next ) {
 </div>
 % }
 <%INIT>
-my $Transactions = RT::Model::TransactionCollection->new;
+my $Transactions = RT::Model::TransactionCollection->new( current_user => Jifty->web->current_user );
 if ($tickets) {
     while (my $t = $tickets->next) {
         $Transactions->limit_to_ticket($t->id);
diff --git a/share/html/Ticket/Elements/ShowRequestor b/share/html/Ticket/Elements/ShowRequestor
index a481dd3..a95a7e3 100755
--- a/share/html/Ticket/Elements/ShowRequestor
+++ b/share/html/Ticket/Elements/ShowRequestor
@@ -53,7 +53,7 @@ while ( my $requestor = $people->next ) {
     next if $requestor->privileged;
     my $name = $m->scomp('/Elements/ShowUser', user => $requestor);
 
-    my $tickets = RT::Model::TicketCollection->new;
+    my $tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
     $tickets->from_sql( "Requestor.id = ". $requestor->id ." AND (Status = 'open' OR Status = 'new')" );
     $tickets->rows_per_page( $rows );
     $tickets->order_by( column => 'Priority', order => 'DESC' );
diff --git a/share/html/Ticket/Forward.html b/share/html/Ticket/Forward.html
index 9d3f9e4..d4f0977 100644
--- a/share/html/Ticket/Forward.html
+++ b/share/html/Ticket/Forward.html
@@ -86,7 +86,7 @@ $id = $ARGS{'id'} = $ticket_obj->id;
 abort( _("Permission Denied") )
     unless $ticket_obj->current_user_has_right('ForwardMessage');
 
-my $txn = RT::Model::Transaction->new;
+my $txn = RT::Model::Transaction->new( current_user => Jifty->web->current_user );
 $txn->load( $quote_transaction );
 abort( _("Couldn't load transaction #%1", $quote_transaction) )
     unless $txn->id;
diff --git a/share/html/Ticket/GnuPG.html b/share/html/Ticket/GnuPG.html
index 99cace4..3926dfd 100644
--- a/share/html/Ticket/GnuPG.html
+++ b/share/html/Ticket/GnuPG.html
@@ -71,7 +71,7 @@ $encrypt => 0
 $decrypt => 0
 </%ARGS>
 <%INIT>
-my $txn = RT::Model::Transaction->new;
+my $txn = RT::Model::Transaction->new( current_user => Jifty->web->current_user );
 $txn->load( $id );
 unless ( $txn->id ) {
     abort(_("Couldn't load transaction #%1", $id));
diff --git a/share/html/Ticket/Graphs/Elements/ShowGraph b/share/html/Ticket/Graphs/Elements/ShowGraph
index 42c11f9..ed631b3 100644
--- a/share/html/Ticket/Graphs/Elements/ShowGraph
+++ b/share/html/Ticket/Graphs/Elements/ShowGraph
@@ -55,7 +55,7 @@ $id => undef
 <%INIT>
 use RT::Util 'safe_run_child';
 
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 $ticket->load( $id );
 unless ( $ticket->id ) {
     Jifty->log->error("Couldn't load ticket $id");
diff --git a/share/html/Ticket/Graphs/Render b/share/html/Ticket/Graphs/Render
index b8e541d..f61d3a7 100644
--- a/share/html/Ticket/Graphs/Render
+++ b/share/html/Ticket/Graphs/Render
@@ -46,7 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <%INIT>
-my $ticket = RT::Model::Ticket->new;
+my $ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
 $ticket->load( $id );
 unless ( $ticket->id ) {
     Jifty->log->error("Couldn't load ticket #$id");
diff --git a/share/html/Ticket/ShowEmailRecord.html b/share/html/Ticket/ShowEmailRecord.html
index 91ed5bc..de87a74 100644
--- a/share/html/Ticket/ShowEmailRecord.html
+++ b/share/html/Ticket/ShowEmailRecord.html
@@ -79,7 +79,7 @@ $show = sub  {
     $m->out( '</pre></div>' );
 };
 
-my $AttachmentObj = RT::Model::Attachment->new;
+my $AttachmentObj = RT::Model::Attachment->new( current_user => Jifty->web->current_user );
 $AttachmentObj->load($attachment) || abort(_("Attachment '%1' could not be loaded", $attachment));
 unless ( $AttachmentObj->id ) {
     abort(_("Attachment '%1' could not be loaded", $attachment));
diff --git a/share/html/Tools/MyDay.html b/share/html/Tools/MyDay.html
index 767dea2..f8a1893 100644
--- a/share/html/Tools/MyDay.html
+++ b/share/html/Tools/MyDay.html
@@ -108,7 +108,7 @@ foreach my $arg ( keys %ARGS ) {
 
 }
 
-my $tickets = RT::Model::TicketCollection->new;
+my $tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
 $tickets->from_sql("Status = 'new' or Status = 'open' AND owner = '".Jifty->web->current_user->id."'");
 $tickets->order_by ( column => 'priority', order => 'DESC');
 
diff --git a/share/html/Tools/Reports/CreatedByDates.html b/share/html/Tools/Reports/CreatedByDates.html
index a2ec27d..3f93c5a 100644
--- a/share/html/Tools/Reports/CreatedByDates.html
+++ b/share/html/Tools/Reports/CreatedByDates.html
@@ -52,7 +52,8 @@ $created_after => undef
 </%args>
 <%init>
 my $title = _("Created tickets in period, grouped by status");
-my $q = RT::Model::Queue->load($queue);
+my $q = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+$q->load($queue);
 my $query = 'Status != "deleted" ';
 
 my $after = RT::DateTime->new_from_string($created_after);
diff --git a/share/html/Tools/Reports/ResolvedByDates.html b/share/html/Tools/Reports/ResolvedByDates.html
index 6404522..630ba35 100644
--- a/share/html/Tools/Reports/ResolvedByDates.html
+++ b/share/html/Tools/Reports/ResolvedByDates.html
@@ -52,7 +52,8 @@ $resolved_after => undef
 </%args>
 <%init>
 my $title = _("Resolved tickets in period, grouped by owner");
-my $q = RT::Model::Queue->load($queue);
+my $q = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+$q->load($queue);
 my $query = '';
 
 my $after = RT::DateTime->new_from_string($resolved_after);
diff --git a/share/html/Tools/Reports/ResolvedByOwner.html b/share/html/Tools/Reports/ResolvedByOwner.html
index d08042b..d9b4b1c 100644
--- a/share/html/Tools/Reports/ResolvedByOwner.html
+++ b/share/html/Tools/Reports/ResolvedByOwner.html
@@ -50,7 +50,8 @@ $queue => undef
 </%args>
 <%init>
 my $title = _("Resolved tickets, grouped by owner");
-my $q = RT::Model::Queue->load($queue);
+my $q = RT::Model::Queue->new( current_user => Jifty->web->current_user );
+$q->load($queue);
 </%init>
 <&| /_elements/wrapper, title => $title &>
 <& /Elements/Tabs, current_tab => '/Tools/Reports/ResolvedByOwner.html', title => $title &>
diff --git a/share/html/User/Prefs.html b/share/html/User/Prefs.html
index 9f0f6a1..61a9c6f 100755
--- a/share/html/User/Prefs.html
+++ b/share/html/User/Prefs.html
@@ -196,7 +196,7 @@
 </&>
 <%INIT>
 
-my $user_object = RT::Model::User->new;
+my $user_object = RT::Model::User->new( current_user => Jifty->web->current_user );
 my ($title, $privilegedChecked, $enabled_checked, $disabled, $result, @results);
 
 my ($val, $msg);
diff --git a/share/html/index.html b/share/html/index.html
index 9ab282b..843cd0e 100755
--- a/share/html/index.html
+++ b/share/html/index.html
@@ -90,7 +90,7 @@ my @results;
 $m->callback( args_ref => \%ARGS, results => \@results, callback_name => 'Initial' );
 
 if ( $ARGS{'quick_create'} ) {
-    my $queue_obj = new RT::Model::Queue;
+    my $queue_obj = new RT::Model::Queue( current_user => Jifty->web->current_user );
     $queue_obj->load($ARGS{queue}) or abort(_("Queue could not be loaded."));
     
     my $CFs = $queue_obj->ticket_custom_fields();

-----------------------------------------------------------------------


More information about the Rt-commit mailing list