[bugzilla-gnome-org-extensions] developers: Add some utils and use them
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bugzilla-gnome-org-extensions] developers: Add some utils and use them
- Date: Thu, 20 Nov 2014 22:04:35 +0000 (UTC)
commit 98e4f007dfe0bc9fc7aa1aaa7b7be5cd786e93ea
Author: Krzesimir Nowak <qdlacz gmail com>
Date: Sat Nov 8 18:52:07 2014 +0100
developers: Add some utils and use them
Developers/lib/Ops.pm | 31 ++++++++++++++++---------------
Developers/lib/Product.pm | 11 ++++++-----
Developers/lib/User.pm | 5 ++++-
Developers/lib/Util.pm | 31 +++++++++++++++++++++++++++++++
4 files changed, 57 insertions(+), 21 deletions(-)
---
diff --git a/Developers/lib/Ops.pm b/Developers/lib/Ops.pm
index 193d698..9038b23 100644
--- a/Developers/lib/Ops.pm
+++ b/Developers/lib/Ops.pm
@@ -27,6 +27,7 @@ use Bugzilla;
use Bugzilla::Constants;
use Bugzilla::Group;
use Bugzilla::Product;
+use Bugzilla::Extension::Developers::Util;
our @EXPORT = qw(
migrate_gnome_developers
@@ -46,8 +47,8 @@ sub _create_developer {
# "<product_name>_developers".
# Every developer in the product should be made a member of this group.
my $new_group = Bugzilla::Group->create({
- name => $product->{'name'} . '_developers',
- description => $product->{'name'} . ' Developers',
+ name => dev_group_name($product),
+ description => dev_group_desc($product),
isactive => 1,
isbuggroup => 1,
});
@@ -72,12 +73,12 @@ sub _create_developer {
# The new <product_name>_developers groups should be automatically
# made a member of the global developers group
- my $dev_group = Bugzilla::Group->new({ name => 'developers' });
+ my $dev_group = Bugzilla::Group->new({ name => dev() });
if (!$dev_group) {
$dev_group = Bugzilla::Group->create({
- name => 'developers',
- description => 'Developers',
+ name => dev(),
+ description => Dev(),
isbuggroup => 1,
isactive => 1,
});
@@ -99,14 +100,14 @@ sub _create_developer {
sub migrate_gnome_developers {
my $dbh = Bugzilla->dbh;
# Create the global developer group if it doesn't yet exist
- my $dev_group = Bugzilla::Group->new({ name => 'developers' });
+ my $dev_group = Bugzilla::Group->new({ name => dev() });
return 1 if $dev_group;
# Create product specific groups:
foreach my $product (Bugzilla::Product->get_all) {
my $group = Bugzilla::Group->new(
- { name => $product->name . '_developers' });
+ { name => dev_group_name($product) });
if (!$group) {
_create_developer($product);
@@ -117,7 +118,7 @@ sub migrate_gnome_developers {
sub maybe_create_developer {
my ($class, $object) = @_;
- if ($class->isa('Bugzilla::Product')) {
+ if ($class->isa(b_p())) {
_create_developer($object);
}
}
@@ -126,7 +127,7 @@ sub _delete_developer {
my $product = shift;
my $dbh = Bugzilla->dbh;
# Delete this product's developer group and its members
- my $group = Bugzilla::Group->new({ name => $product->name . '_developers' });
+ my $group = Bugzilla::Group->new({ name => dev_group_name($product) });
if ($group) {
$dbh->do('DELETE FROM user_group_map WHERE group_id = ?',
@@ -146,7 +147,7 @@ sub _delete_developer {
sub maybe_remove_developers {
my ($object) = @_;
- if ($object->isa('Bugzilla::Product')) {
+ if ($object->isa(b_p())) {
_delete_developer($object);
}
}
@@ -154,13 +155,13 @@ sub maybe_remove_developers {
sub _rename_developer {
my ($product, $old_product, $changes) = @_;
my $developer_group = new Bugzilla::Group(
- { name => $old_product->name . "_developers" });
+ { name => dev_group_name($old_product) });
my $new_group = new Bugzilla::Group(
- { name => $product->name . '_developers' });
+ { name => dev_group_name($product) });
if ($developer_group && !$new_group) {
- $developer_group->set_name($product->name . "_developers");
- $developer_group->set_description($product->name . " Developers");
+ $developer_group->set_name(dev_group_name($product));
+ $developer_group->set_description(dev_group_desc($product));
$developer_group->update();
}
}
@@ -168,7 +169,7 @@ sub _rename_developer {
sub maybe_rename_developers_group {
my ($object, $old_object, $changes) = @_;
- if ($object->isa('Bugzilla::Product')) {
+ if ($object->isa(b_p())) {
if (defined $changes->{'name'}) {
_rename_developer($object, $old_object, $changes);
}
diff --git a/Developers/lib/Product.pm b/Developers/lib/Product.pm
index 45c7534..3d3643a 100644
--- a/Developers/lib/Product.pm
+++ b/Developers/lib/Product.pm
@@ -4,18 +4,19 @@ use strict;
use warnings;
use Bugzilla::Group;
use Bugzilla::Product;
+use Bugzilla::Extension::Developers::Util;
sub developers {
my ($self) = @_;
- if (!defined $self->{'developers'}) {
- $self->{'developers'} = [];
+ if (!defined $self->{dev()}) {
+ $self->{dev()} = [];
- my $group = Bugzilla::Group->new({ name => $self->name . '_developers' });
- $self->{developers} = $group ? $group->members_non_inherited : [];
+ my $group = Bugzilla::Group->new({ name => dev_group_name($self) });
+ $self->{dev()} = $group ? $group->members_non_inherited : [];
}
- return $self->{'developers'};
+ return $self->{dev()};
}
BEGIN {
diff --git a/Developers/lib/User.pm b/Developers/lib/User.pm
index b359739..02f6123 100644
--- a/Developers/lib/User.pm
+++ b/Developers/lib/User.pm
@@ -3,7 +3,9 @@ package Bugzilla::Extension::Developers::User;
use strict;
use warnings;
use Bugzilla::User;
+use Bugzilla::Extension::Developers::Util;
use Bugzilla::Extension::Developers::Product;
+
sub is_developer {
my ($self, $product) = @_;
@@ -12,10 +14,11 @@ sub is_developer {
# at the moment the performance of this should be fine.
my $devs = $product->developers;
my $is_dev = grep { $_->id == $self->id } @$devs;
+
return $is_dev ? 1 : 0;
}
else {
- return $self->in_group("developers") ? 1 : 0;
+ return $self->in_group(dev()) ? 1 : 0;
}
return 0;
diff --git a/Developers/lib/Util.pm b/Developers/lib/Util.pm
index 9e2d8df..e787cb5 100644
--- a/Developers/lib/Util.pm
+++ b/Developers/lib/Util.pm
@@ -21,8 +21,15 @@
package Bugzilla::Extension::Developers::Util;
use strict;
+use warnings;
use base qw(Exporter);
+
our @EXPORT = qw(
+ b_p
+ dev
+ Dev
+ dev_group_name
+ dev_group_desc
);
# This file can be loaded by your extension via
@@ -30,4 +37,28 @@ our @EXPORT = qw(
# used by your extension in here. (Make sure you also list them in
# @EXPORT.)
+sub b_p {
+ 'Bugzilla::Product';
+}
+
+sub dev {
+ 'developers'
+}
+
+sub Dev {
+ 'Developers'
+}
+
+sub dev_group_name {
+ my ($product) = @_;
+
+ $product->{'name'} . '_' . dev();
+}
+
+sub dev_group_desc {
+ my ($product) = @_;
+
+ $product->{'name'} . ' ' . Dev();
+}
+
1;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]