diff options
Diffstat (limited to 'rt/etc/acl.Pg')
-rwxr-xr-x | rt/etc/acl.Pg | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/rt/etc/acl.Pg b/rt/etc/acl.Pg new file mode 100755 index 000000000..fb625592d --- /dev/null +++ b/rt/etc/acl.Pg @@ -0,0 +1,67 @@ +sub acl { + my $dbh = shift; + + my @acls; + + my @tables = qw ( + + attachments_id_seq + Attachments + Attributes + attributes_id_seq + queues_id_seq + Queues + links_id_seq + Links + principals_id_seq + Principals + groups_id_seq + Groups + scripconditions_id_seq + ScripConditions + transactions_id_seq + Transactions + scrips_id_seq + Scrips + acl_id_seq + ACL + groupmembers_id_seq + GroupMembers + cachedgroupmembers_id_seq + CachedGroupMembers + users_id_seq + Users + tickets_id_seq + Tickets + scripactions_id_seq + ScripActions + templates_id_seq + Templates + objectcustomfieldvalues_id_s + ObjectCustomFieldValues + customfields_id_seq + CustomFields + objectcustomfields_id_s + ObjectCustomFields + customfieldvalues_id_seq + CustomFieldValues + sessions + ); + + # if there's already an rt_user, drop it. + my @row = + $dbh->selectrow_array( "select usename from pg_user where usename = '" . $RT::DatabaseUser."'" ); + if ( $row[0] ) { + push @acls, "drop user ${RT::DatabaseUser};",; + } + + push @acls, "create user ${RT::DatabaseUser} with password '${RT::DatabasePassword}' NOCREATEDB NOCREATEUSER;"; + foreach my $table (@tables) { + push @acls, + "GRANT SELECT, INSERT, UPDATE, DELETE ON $table to " + . $RT::DatabaseUser . ";"; + + } + return (@acls); +} +1; |