communigate provisioning phase 2: add svc_domain.trailer -> communigate TrailerText...
[freeside.git] / bin / pg-readonly
1 #!/usr/bin/perl
2 #
3 # hack to update/add read-only permissions for a user on the db
4 #
5 # usage: pg-readonly freesideuser readonlyuser
6
7 use strict;
8 use DBI;
9 use FS::UID qw(adminsuidsetup);
10 use FS::Record qw(dbdef);
11
12 my $user = shift or die &usage;
13 my $rouser = shift or die &usage;
14
15 my $dbh = adminsuidsetup $user;
16
17 foreach my $table ( dbdef->tables ) {
18   $dbh->do("GRANT SELECT ON $table TO $rouser");
19   $dbh->commit();
20   if ( my $pkey = dbdef->table($table)->primary_key ) {
21     $dbh->do("GRANT SELECT ON ${table}_${pkey}_seq TO $rouser");
22     $dbh->commit();
23   }
24 }