[Rt-commit] rt branch, 4.2/role-group-restrictions, created. rt-4.1.8-560-ge475b19

Alex Vandiver alexmv at bestpractical.com
Thu Jun 6 21:00:07 EDT 2013


The branch, 4.2/role-group-restrictions has been created
        at  e475b1954ef9fec17871037eb6e973a8dec3032d (commit)

- Log -----------------------------------------------------------------
commit 3ca16a7a881b5db50a62c8e8fc9dc635fa99b6d8
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Jun 6 20:58:39 2013 -0400

    Prevent groups from being set as the value of a "single-member" role group
    
    Being able to set a multi-member group would defeat the purpose of
    limiting a role to only having one member.

diff --git a/lib/RT/Record/Role/Roles.pm b/lib/RT/Record/Role/Roles.pm
index 31692f5..21fb076 100644
--- a/lib/RT/Record/Role/Roles.pm
+++ b/lib/RT/Record/Role/Roles.pm
@@ -415,6 +415,9 @@ sub AddRoleMember {
                           $principal->Object->Name, $self->loc($type)) )
             if $group->HasMember( $principal );
 
+    return (0, $self->loc('[_1] cannot be a group', $self->loc($type)) )
+                if $group->SingleMemberRoleGroup and $principal->IsGroup;
+
     my ( $ok, $msg ) = $group->_AddMember( %args, RecordTransaction => !$args{Silent} );
     unless ($ok) {
         $RT::Logger->error("Failed to add $args{PrincipalId} as a member of group ".$group->Id.": ".$msg);

commit e475b1954ef9fec17871037eb6e973a8dec3032d
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Jun 6 21:00:02 2013 -0400

    Provide a better success message when setting ("adding a member") a single-value role group

diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index d202d79..10c3aff 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -1126,6 +1126,10 @@ sub _AddMember {
         }
     }
 
+    return (1, $self->loc("[_1] set to [_2]",
+                          $self->loc($self->Name), $new_member_obj->Object->Name) )
+        if $self->SingleMemberRoleGroup;
+
     return ( 1, $self->loc("Member added: [_1]", $new_member_obj->Object->Name) );
 }
 

-----------------------------------------------------------------------


More information about the Rt-commit mailing list