From 4f50aaa53044225294e14002bd4170513d224d64 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Tue, 7 Feb 2012 13:22:13 +0100 Subject: [PATCH] =?utf8?q?Recht=20hinzugef=C3=BCgt:=20Nur=20eigene=20Kunde?= =?utf8?q?n=20(Verk=C3=A4ufer=20gleich=20Mitarbeiter)=20editieren?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Zusätzliches Recht alle Kunden / Lieferanten editieren, war bisher standardmäßig IMMER so und kann jetzt deaktiviert werden. Falls es deaktiviert wird, kann man den Kunden / Lieferanten nur editieren wenn man selber als Verkäufer eingetragen ist. --- SL/Auth.pm | 3 +- SL/CT.pm | 7 +++ doc/changelog | 6 +++ locale/de/all | 5 ++- sql/Pg-upgrade2/auth_enable_ct_all_edit.pl | 51 ++++++++++++++++++++++ 5 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 sql/Pg-upgrade2/auth_enable_ct_all_edit.pl diff --git a/SL/Auth.pm b/SL/Auth.pm index d361a3d07..870ead100 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -947,7 +947,8 @@ sub all_rights_full { ["crm_notices", $locale->text("CRM notices")], ["crm_other", $locale->text("CRM other")], ["--master_data", $locale->text("Master Data")], - ["customer_vendor_edit", $locale->text("Create and edit customers and vendors")], + ["customer_vendor_edit", $locale->text("Create customers and vendors. Edit all vendors. Edit only customers where salesman equals employee (login)")], + ["customer_vendor_all_edit", $locale->text("Create customers and vendors. Edit all vendors. Edit all customers")], ["part_service_assembly_edit", $locale->text("Create and edit parts, services, assemblies")], ["project_edit", $locale->text("Create and edit projects")], ["--ar", $locale->text("AR")], diff --git a/SL/CT.pm b/SL/CT.pm index 3be8ce94f..b46ee099b 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -769,6 +769,13 @@ sub search { push(@values, conv_i($form->{business_id})); } + # Nur Kunden finden, bei denen ich selber der Verkäufer bin + # Gilt nicht für Lieferanten + if ($cv eq 'customer' && !$main::auth->assert('customer_vendor_all_edit', 1)) { + $where .= qq| AND ct.salesman_id = (select id from employee where login= ?)|; + push(@values, $form->{login}); + } + my ($cvar_where, @cvar_values) = CVar->build_filter_query('module' => 'CT', 'trans_id_field' => 'ct.id', 'filter' => $form); diff --git a/doc/changelog b/doc/changelog index e85c85e23..65b4c2360 100644 --- a/doc/changelog +++ b/doc/changelog @@ -47,6 +47,12 @@ - Mastertemplates für den Ausdruck sind in eigene Unterverzeichnisse gewandert. Dadurch wird das Hinzufügen neuer Vorlagensätze einfacher. +- Zwei Rechterweiterung für 'eingeschränktere' Vertriebspartnerfunktion + Schreibschutz für Preise in Angebot und Suchfunktion in Stammdaten Kunden nur für Mitarbeiter freigeben, die auch + gleichzeitig als Verkäufer für den Kunden eingetragen sind. Rechtebeschreibung im Admin-Menü wie folgt: + * Preise und Rabatt in Formularen frei anpassen (falls deaktiviert, + wird allerdings NUR das textfield auf READONLY gesetzt / kann je nach Browserversion und technischen Fähigkeiten des Anwenders umgangen werden). + * Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Nur Kunden bearbeiten bei denen der Verkäufer gleich Bearbeiter (login) ist Kleinere neue Features und Detailverbesserungen: - á (LATIN SMALL LETTER A WITH ACUTE) wird in Latex-Vorlagen nicht mehr durch diff --git a/locale/de/all b/locale/de/all index 7b1e4abbb..d9af546fe 100644 --- a/locale/de/all +++ b/locale/de/all @@ -447,7 +447,6 @@ $self->{texts} = { 'Create a new payment term' => 'Neue Zahlungsbedingungen anlegen', 'Create a standard group' => 'Eine Standard-Benutzergruppe anlegen', 'Create and edit RFQs' => 'Lieferantenanfragen erfassen und bearbeiten', - 'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten', 'Create and edit dunnings' => 'Mahnungen erfassen und bearbeiten', 'Create and edit invoices and credit notes' => 'Rechnungen und Gutschriften erfassen und bearbeiten', 'Create and edit parts, services, assemblies' => 'Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten', @@ -462,6 +461,8 @@ $self->{texts} = { 'Create bank collection via SEPA XML' => 'Bankeinzug via SEPA XML erstellen', 'Create bank transfer' => 'Überweisung erstellen', 'Create bank transfer via SEPA XML' => 'Überweisung via SEPA XML erzeugen', + 'Create customers and vendors. Edit all vendors. Edit all customers' => 'Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Alle Kunden bearbeiten', + 'Create customers and vendors. Edit all vendors. Edit only customers where salesman equals employee (login)' => 'Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Nur Kunden bearbeiten bei denen der Verkäufer gleich Bearbeiter (login) ist', 'Create invoice?' => 'Rechnung erstellen?', 'Create new' => 'Neu erfassen', 'Create new business' => 'Kunden-/Lieferantentyp erfassen', @@ -731,7 +732,7 @@ $self->{texts} = { 'Edit membership' => 'Mitgliedschaft bearbeiten', 'Edit note' => 'Notiz bearbeiten', 'Edit payment term' => 'Zahlungsbedingungen bearbeiten', - 'Edit prices and discount (if not used, textfield is ONLY set readonly)' => 'Preise und Rabatt in Formularen frei anpassen (falls deaktiviert, wird allerdings NUR das textfield auf READONLY gesetzt / kann je nach Browserversion und technischen Fähigkeiten des Anwenders noch gehackt werden).', + 'Edit prices and discount (if not used, textfield is ONLY set readonly)' => 'Preise und Rabatt in Formularen frei anpassen (falls deaktiviert, wird allerdings NUR das textfield auf READONLY gesetzt / kann je nach Browserversion und technischen Fähigkeiten des Anwenders noch umgangen werden)', 'Edit rights' => 'Rechte bearbeiten', 'Edit templates' => 'Vorlagen bearbeiten', 'Edit the Delivery Order' => 'Lieferschein bearbeiten', diff --git a/sql/Pg-upgrade2/auth_enable_ct_all_edit.pl b/sql/Pg-upgrade2/auth_enable_ct_all_edit.pl new file mode 100644 index 000000000..0579675cb --- /dev/null +++ b/sql/Pg-upgrade2/auth_enable_ct_all_edit.pl @@ -0,0 +1,51 @@ +# @tag: auth_enable_ct_all_edit +# @description: Zusätzliches Recht alle Kunden / Lieferanten editieren, war bisher standardmäßig IMMER so und kann jetzt deaktiviert werden +# falls es deaktiviert wird, kann ich den Kunden / Lieferanten nur editieren wenn ich selber als Verkäufer eingetragen bin +# @depends: release_2_6_3 +# @charset: utf-8 + +use utf8; +use strict; +use Data::Dumper; +die("This script cannot be run from the command line.") unless ($main::form); + +sub mydberror { + my ($msg) = @_; + die($dbup_locale->text("Database update error:") . + "
$msg
" . $DBI::errstr); +} + +sub do_update { + my $dbh = $main::auth->dbconnect(); + my $query = <finish(); + $dbh->commit(); + } + + return 1; +} + +return do_update(); + -- 2.20.1