Sprache auf ungültig setzen im Admin-Bereich
[kivitendo-erp.git] / SL / Controller / EmailJournal.pm
index 3bfc39b..376dfb3 100644 (file)
@@ -27,9 +27,12 @@ __PACKAGE__->run_before('add_stylesheet');
 sub action_list {
   my ($self) = @_;
 
+  $::auth->assert('email_journal');
+
   if ( $::instance_conf->get_email_journal == 0 ) {
     flash('info',  $::locale->text('Storing the emails in the journal is currently disabled in the client configuration.'));
   }
+  $self->setup_list_action_bar;
   $self->render('email_journal/list',
                 title   => $::locale->text('Email journal'),
                 ENTRIES => $self->models->get,
@@ -39,14 +42,17 @@ sub action_list {
 sub action_show {
   my ($self) = @_;
 
+  $::auth->assert('email_journal');
+
   my $back_to = $::form->{back_to} || $self->url_for(action => 'list');
 
   $self->entry(SL::DB::EmailJournal->new(id => $::form->{id})->load);
 
-  if (!$self->can_view_all && ($self->entry->sender_id != SL::DB::Manager::Emplyee->current->id)) {
+  if (!$self->can_view_all && ($self->entry->sender_id != SL::DB::Manager::Employee->current->id)) {
     $::form->error(t8('You do not have permission to access this entry.'));
   }
 
+  $self->setup_show_action_bar;
   $self->render('email_journal/show',
                 title   => $::locale->text('View sent email'),
                 back_to => $back_to);
@@ -55,13 +61,19 @@ sub action_show {
 sub action_download_attachment {
   my ($self) = @_;
 
+  $::auth->assert('email_journal');
+
   my $attachment = SL::DB::EmailJournalAttachment->new(id => $::form->{id})->load;
 
-  if (!$self->can_view_all && ($attachment->email_journal->sender_id != SL::DB::Manager::Emplyee->current->id)) {
+  if (!$self->can_view_all && ($attachment->email_journal->sender_id != SL::DB::Manager::Employee->current->id)) {
     $::form->error(t8('You do not have permission to access this entry.'));
   }
-
-  $self->send_file(\$attachment->content, name => $attachment->name, type => $attachment->mime_type);
+  my $ref = \$attachment->content;
+  if ( $attachment->file_id > 0 ) {
+    my $file = SL::File->get(id => $attachment->file_id );
+    $ref = $file->get_content if $file;
+  }
+  $self->send_file($ref, name => $attachment->name, type => $attachment->mime_type);
 }
 
 #
@@ -76,7 +88,7 @@ sub add_stylesheet {
 # helpers
 #
 
-sub init_can_view_all { $::auth->assert('admin', 1) }
+sub init_can_view_all { $::auth->assert('email_employee_readall', 1) }
 
 sub init_models {
   my ($self) = @_;
@@ -124,4 +136,31 @@ sub init_filter_summary {
   return join ', ', @filter_strings;
 }
 
+sub setup_list_action_bar {
+  my ($self) = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Filter'),
+        submit    => [ '#filter_form', { action => 'EmailJournal/list' } ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
+sub setup_show_action_bar {
+  my ($self) = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Back'),
+        call => [ 'kivi.history_back' ],
+      ],
+    );
+  }
+}
+
 1;