[Rt-commit] rt branch, 4.4/custom-role-serializer, updated. rt-4.4.2-5-g426a61e
Shawn Moore
shawn at bestpractical.com
Tue Oct 10 11:47:20 EDT 2017
The branch, 4.4/custom-role-serializer has been updated
via 426a61ec1e856d0af1a175884bd6ed09794847b5 (commit)
via 670a49c84f92f35db574bbbf59c2a65697812a9b (commit)
from a338922877f1e0eae85f473a448ad1d4938b046f (commit)
Summary of changes:
lib/RT/Group.pm | 35 ++++++++++++++++++++++++++---------
1 file changed, 26 insertions(+), 9 deletions(-)
- Log -----------------------------------------------------------------
commit 670a49c84f92f35db574bbbf59c2a65697812a9b
Author: Shawn M Moore <shawn at bestpractical.com>
Date: Tue Oct 10 15:36:02 2017 +0000
Factor out an RT::Group->_CustomRoleObj
diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index e6fe7dd..e3dc4fa 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -1339,15 +1339,9 @@ sub Label {
return $self->Name;
}
- if ($self->Domain =~ /-Role$/) {
- my ($id) = $self->Name =~ /^RT::CustomRole-(\d+)$/;
- if ($id) {
- my $role = RT::CustomRole->new($self->CurrentUser);
- $role->Load($id);
-
- # don't loc user-defined role names
- return $role->Name;
- }
+ if (my $role = $self->_CustomRoleObj) {
+ # don't loc user-defined role names
+ return $role->Name;
}
return $self->loc($self->Name);
@@ -1702,6 +1696,21 @@ sub PostInflate {
);
}
+# If this group represents the members of a custom role, then return
+# the RT::CustomRole object. Otherwise, return undef
+sub _CustomRoleObj {
+ my $self = shift;
+ if ($self->Domain =~ /-Role$/) {
+ my ($id) = $self->Name =~ /^RT::CustomRole-(\d+)$/;
+ if ($id) {
+ my $role = RT::CustomRole->new($self->CurrentUser);
+ $role->Load($id);
+ return $role;
+ }
+ }
+ return;
+}
+
RT::Base->_ImportOverlays();
1;
commit 426a61ec1e856d0af1a175884bd6ed09794847b5
Author: Shawn M Moore <shawn at bestpractical.com>
Date: Tue Oct 10 15:36:36 2017 +0000
Serialize Group -> CustomRole link using indirection
diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index e3dc4fa..5ed026e 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -1512,6 +1512,9 @@ sub FindDependencies {
my $instance = $self->InstanceObj;
$deps->Add( out => $instance ) if $instance;
+ my $custom_role = $self->_CustomRoleObj;
+ $deps->Add( out => $custom_role ) if $custom_role;
+
# Group members records, unless we're a system group
if ($self->Domain ne "SystemInternal") {
my $objs = RT::GroupMembers->new( $self->CurrentUser );
@@ -1619,6 +1622,11 @@ sub Serialize {
$store{Disabled} = $self->PrincipalObj->Disabled;
$store{Principal} = $self->PrincipalObj->UID;
$store{PrincipalId} = $self->PrincipalObj->Id;
+
+ if (my $role = $self->_CustomRoleObj) {
+ $store{Name} = \($role->UID);
+ }
+
return %store;
}
-----------------------------------------------------------------------
More information about the rt-commit
mailing list