aboutsummaryrefslogtreecommitdiffstats
path: root/bin/one-off-update-staff
diff options
context:
space:
mode:
Diffstat (limited to 'bin/one-off-update-staff')
-rwxr-xr-xbin/one-off-update-staff38
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/one-off-update-staff b/bin/one-off-update-staff
new file mode 100755
index 000000000..d94d6b961
--- /dev/null
+++ b/bin/one-off-update-staff
@@ -0,0 +1,38 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+BEGIN {
+ use File::Basename qw(dirname);
+ use File::Spec;
+ my $d = dirname(File::Spec->rel2abs($0));
+ require "$d/../setenv.pl";
+}
+
+use FixMyStreet::DB;
+
+my $rs = FixMyStreet::DB->resultset("Comment")->search({
+ 'user.from_body' => { '!=', undef },
+ 'user.is_superuser' => 0,
+ 'me.extra' => [ undef, { -not_like => '%is_body_user%' } ],
+}, {
+ "+columns" => ["user.from_body"],
+ join => 'user',
+});
+while (my $row = $rs->next) {
+ my $id = $row->user->{_column_data}->{from_body}; # Avoid DB lookups
+ $row->set_extra_metadata( is_body_user => $id );
+ $row->update;
+}
+
+$rs = FixMyStreet::DB->resultset("Comment")->search({
+ 'user.is_superuser' => 1,
+ 'me.extra' => [ undef, { -not_like => '%is_superuser%' } ],
+}, {
+ join => 'user',
+});
+while (my $row = $rs->next) {
+ $row->set_extra_metadata( is_superuser => 1 );
+ $row->update;
+}