X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fetc%2Facl.Pg;h=16ea71b2d96d0cce17a1afd2d9ccfa3c1077cf08;hp=13ac41dcf55564fa25887ef3e28d561c21eab7ea;hb=945721f48f74d5cfffef7c7cf3a3d6bc2521f5dd;hpb=160be29a0dc62e79a4fb95d2ab8c0c7e5996760e diff --git a/rt/etc/acl.Pg b/rt/etc/acl.Pg index 13ac41dcf..16ea71b2d 100755 --- a/rt/etc/acl.Pg +++ b/rt/etc/acl.Pg @@ -1,39 +1,63 @@ -drop user !!DB_RT_USER!!; -create user !!DB_RT_USER!! with password '!!DB_RT_PASS!!' NOCREATEDB NOCREATEUSER; +sub acl { + my $dbh = shift; -grant select, insert, update, delete on Groups to !!DB_RT_USER!!; -grant select, insert, update, delete on Groups_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on ACL to !!DB_RT_USER!!; -grant select, insert, update, delete on ACL_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Watchers to !!DB_RT_USER!!; -grant select, insert, update, delete on Watchers_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Links to !!DB_RT_USER!!; -grant select, insert, update, delete on Links_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Users to !!DB_RT_USER!!; -grant select, insert, update, delete on Users_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Tickets to !!DB_RT_USER!!; -grant select, insert, update, delete on Tickets_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on GroupMembers to !!DB_RT_USER!!; -grant select, insert, update, delete on GroupMembers_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Queues to !!DB_RT_USER!!; -grant select, insert, update, delete on Queues_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Transactions to !!DB_RT_USER!!; -grant select, insert, update, delete on Transactions_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on ScripActions to !!DB_RT_USER!!; -grant select, insert, update, delete on ScripActions_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on ScripConditions to !!DB_RT_USER!!; -grant select, insert, update, delete on ScripConditions_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Scrips to !!DB_RT_USER!!; -grant select, insert, update, delete on Scrips_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Attachments to !!DB_RT_USER!!; -grant select, insert, update, delete on Attachments_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Templates to !!DB_RT_USER!!; -grant select, insert, update, delete on Templates_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on Keywords to !!DB_RT_USER!!; -grant select, insert, update, delete on Keywords_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on ObjectKeywords to !!DB_RT_USER!!; -grant select, insert, update, delete on ObjectKeywords_id_seq to !!DB_RT_USER!!; -grant select, insert, update, delete on KeywordSelects to !!DB_RT_USER!!; -grant select, insert, update, delete on KeywordSelects_id_seq to !!DB_RT_USER!!; + my @acls; + my @tables = qw ( + attachments_id_seq + Attachments + 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 + ticketcustomfieldvalues_id_s + TicketCustomFieldValues + customfields_id_seq + CustomFields + 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;