Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a27846ef

Von Bernd Bleßmann vor mehr als 2 Jahren hinzugefügt

  • ID a27846ef2756ed0f59c29d256a5d43d6caaf0b58
  • Vorgänger cfb02930
  • Nachfolger fa31a7e0

Revert "Briefe: Rechteprüfung gefixed"

This reverts commit 65604fea85234a5ae3e787f7cafd81ece6b8621d.

Der Fix ist zwar richtig, aber nicht weitgehend. Es fehlen an einigen
Stellen weiter Übergaben von "is_sales" (z.B. bei allen redirects).

Zudem gibt es noch ein anderes Problem. Die Rechteprüfung hängt von
der form-Variablen "is_sales", ab, die zwar auch beim Export durch
den Reportgenerator übergeben wird. Diese wird aber erst nach dem
run_before-hook von dfen Report-Generator-spezifischen Hiddens
in der form gesetzt.

Ich mache dazu ein Ticket auf: Refs #495 (redmine)

Unterschiede anzeigen:

SL/Controller/Letter.pm
379 379
  my %column_defs = (
380 380
    date                  => { text => t8('Date'),         sub => sub { $_[0]->date_as_date } },
381 381
    subject               => { text => t8('Subject'),      sub => sub { $_[0]->subject },
382
                               obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, is_sales => $self->is_sales, callback => $self->models->get_callback) }  },
382
                               obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, callback => $self->models->get_callback) }  },
383 383
    letternumber          => { text => t8('Letternumber'), sub => sub { $_[0]->letternumber },
384
                               obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, is_sales => $self->is_sales, callback => $self->models->get_callback) }  },
384
                               obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, callback => $self->models->get_callback) }  },
385 385
    customer_id           => { text => t8('Customer'),      sub => sub { SL::DB::Manager::Customer->find_by_or_create(id => $_[0]->customer_id)->displayable_name }, visible => $self->is_sales },
386 386
    vendor_id             => { text => t8('Vendor'),        sub => sub { SL::DB::Manager::Vendor->find_by_or_create(id => $_[0]->vendor_id)->displayable_name }, visible => !$self->is_sales},
387 387
    contact               => { text => t8('Contact'),       sub => sub { $_[0]->contact ? $_[0]->contact->full_name : '' } },
......
588 588
}
589 589

  
590 590
sub check_auth_edit {
591
  $_[0]->is_sales ? $::auth->assert('sales_letter_edit')
592
                  : $::auth->assert('purchase_letter_edit');
591
  $::form->{is_sales} ? $::auth->assert('sales_letter_edit')
592
                      : $::auth->assert('purchase_letter_edit');
593 593
}
594 594

  
595 595
sub check_auth_report {
596
  $_[0]->is_sales ? $::auth->assert('sales_letter_report')
597
                  : $::auth->assert('purchase_letter_report');
596
  $::form->{is_sales} ? $::auth->assert('sales_letter_report')
597
                      : $::auth->assert('purchase_letter_report');
598 598
}
599 599

  
600 600
sub setup_load_letter_draft_action_bar {

Auch abrufbar als: Unified diff