Recht hinzugefügt: Nur eigene Kunden (Verkäufer gleich Mitarbeiter) editieren
[kivitendo-erp.git] / sql / Pg-upgrade2 / auth_enable_ct_all_edit.pl
1 # @tag: auth_enable_ct_all_edit
2 # @description: Zusätzliches Recht alle Kunden / Lieferanten editieren, war bisher standardmäßig IMMER so und kann jetzt deaktiviert werden
3 #               falls es deaktiviert wird, kann ich den Kunden / Lieferanten nur editieren wenn ich selber als Verkäufer eingetragen bin
4 # @depends: release_2_6_3
5 # @charset: utf-8
6
7 use utf8;
8 use strict;
9 use Data::Dumper;
10 die("This script cannot be run from the command line.") unless ($main::form);
11
12 sub mydberror {
13   my ($msg) = @_;
14   die($dbup_locale->text("Database update error:") .
15       "<br>$msg<br>" . $DBI::errstr);
16 }
17
18 sub do_update {
19   my $dbh   = $main::auth->dbconnect();
20   my $query = <<SQL;
21     SELECT id
22     FROM auth."group"
23     WHERE NOT EXISTS(
24       SELECT group_id
25       FROM auth.group_rights
26       WHERE (auth.group_rights.group_id = auth."group".id)
27         AND (auth.group_rights."right"  = 'customer_vendor_all_edit')
28     )
29 SQL
30
31   my @group_ids = selectall_array_query($form, $dbh, $query);
32   if (@group_ids) {
33     $query = <<SQL;
34       INSERT INTO auth.group_rights (group_id, "right",          granted)
35       VALUES                        (?,        'customer_vendor_all_edit', TRUE)
36 SQL
37     my $sth = prepare_query($form, $dbh, $query);
38
39     foreach my $id (@group_ids) {
40       do_statement($form, $sth, $query, $id);
41     }
42
43     $sth->finish();
44     $dbh->commit();
45   }
46
47   return 1;
48 }
49
50 return do_update();
51