first pass RT4 merge, RT#13852
[freeside.git] / rt / etc / upgrade / 4.0.1 / acl.Pg
1
2 sub acl {
3     my $dbh = shift;
4
5     my @acls;
6
7     my @tables = qw (
8         classes_id_seq
9         Classes
10         articles_id_seq
11         Articles
12         topics_id_seq
13         Topics
14         objecttopics_id_seq
15         ObjectTopics
16         objectclasses_id_seq
17         ObjectClasses
18     );
19
20     my $db_user = RT->Config->Get('DatabaseUser');
21
22     my $sequence_right
23         = ( $dbh->{pg_server_version} >= 80200 )
24         ? "USAGE, SELECT, UPDATE"
25         : "SELECT, UPDATE";
26
27     foreach my $table (@tables) {
28         # Tables are upper-case, sequences are lowercase
29         if ( $table =~ /^[a-z]/ ) {
30             push @acls, "GRANT $sequence_right ON $table TO \"$db_user\";"
31         }
32         else {
33             push @acls, "GRANT SELECT, INSERT, UPDATE, DELETE ON $table TO \"$db_user\";"
34         }
35     }
36     return (@acls);
37 }
38
39 1;