e77fbee65382a2f3c41007dde45551d2da4538f5
[kivitendo-erp.git] / sql / Pg-upgrade2 / auth_enable_sales_all_edit.pl
1 # @tag: auth_enable_sales_all_edit
2 # @description: Neues gruppenbezogenes Recht für den Bereich Verkauf hinzugefügt (sales_all_edit := Nur wenn angehakt, können Verkaufsdokumente von anderen Bearbeitern eingesehen werden) Das Skript hakt standardmässig dieses Recht an, sodass es keinen Unterschied zu vorhergehenden Version gibt.
3 # @depends: release_2_6_0
4 # @charset: utf-8
5
6 use strict;
7 use Data::Dumper;
8 die("This script cannot be run from the command line.") unless ($main::form);
9
10 sub mydberror {
11   my ($msg) = @_;
12   die($dbup_locale->text("Database update error:") .
13       "<br>$msg<br>" . $DBI::errstr);
14 }
15
16 sub do_update {
17   my $dbh   = $main::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"  = 'sales_all_edit')
26     )
27 SQL
28
29   my @group_ids = selectall_array_query($form, $dbh, $query);
30   if (@group_ids) {
31     $query = <<SQL;
32       INSERT INTO auth.group_rights (group_id, "right",          granted)
33       VALUES                        (?,        'sales_all_edit', TRUE)
34 SQL
35     my $sth = prepare_query($form, $dbh, $query);
36
37     foreach my $id (@group_ids) {
38       do_statement($form, $sth, $query, $id);
39     }
40
41     $sth->finish();
42     $dbh->commit();
43   }
44
45   return 1;
46 }
47
48 return do_update();
49