Auftrags-Controller: überflüssiges "die"-Statement entfernt
[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 package SL::DBUpgrade2::auth_enable_ct_all_edit;
6
7 use strict;
8 use utf8;
9
10 use parent qw(SL::DBUpgrade2::Base);
11
12 use SL::DBUtils;
13
14 sub run {
15   my ($self) = @_;
16
17   $self->dbh($::auth->dbconnect);
18   my $query = <<SQL;
19     SELECT id
20     FROM auth."group"
21     WHERE NOT EXISTS(
22       SELECT group_id
23       FROM auth.group_rights
24       WHERE (auth.group_rights.group_id = auth."group".id)
25         AND (auth.group_rights."right"  = 'customer_vendor_all_edit')
26     )
27 SQL
28
29   my @group_ids = selectall_array_query($::form, $self->dbh, $query);
30   if (@group_ids) {
31     $query = <<SQL;
32       INSERT INTO auth.group_rights (group_id, "right",          granted)
33       VALUES                        (?,        'customer_vendor_all_edit', TRUE)
34 SQL
35     my $sth = prepare_query($::form, $self->dbh, $query);
36
37     foreach my $id (@group_ids) {
38       do_statement($::form, $sth, $query, $id);
39     }
40
41     $sth->finish();
42     $self->dbh->commit();
43   }
44
45   return 1;
46 }
47
48 1;