c6101e664624a460323c2a980fab61478b06edac
[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 utf8;
7 use strict;
8 use Data::Dumper;
9 die("This script cannot be run from the command line.") unless ($main::form);
10
11 sub mydberror {
12   my ($msg) = @_;
13   die($dbup_locale->text("Database update error:") .
14       "<br>$msg<br>" . $DBI::errstr);
15 }
16
17 sub do_update {
18   my $dbh   = $main::auth->dbconnect();
19   my $query = <<SQL;
20     SELECT id
21     FROM auth."group"
22     WHERE NOT EXISTS(
23       SELECT group_id
24       FROM auth.group_rights
25       WHERE (auth.group_rights.group_id = auth."group".id)
26         AND (auth.group_rights."right"  = 'sales_all_edit')
27     )
28 SQL
29
30   my @group_ids = selectall_array_query($form, $dbh, $query);
31   if (@group_ids) {
32     $query = <<SQL;
33       INSERT INTO auth.group_rights (group_id, "right",          granted)
34       VALUES                        (?,        'sales_all_edit', TRUE)
35 SQL
36     my $sth = prepare_query($form, $dbh, $query);
37
38     foreach my $id (@group_ids) {
39       do_statement($form, $sth, $query, $id);
40     }
41
42     $sth->finish();
43     $dbh->commit();
44   }
45
46   return 1;
47 }
48
49 return do_update();
50