Jesse and all,
Why doesn RT::System::id return 1 when in the Groups table all
the Role groups for the RT::System Domain have Instance set to 1?
This bit me because I was building an ACL query (as Jesse mentioned)
and I needed the principal Id for the correct role account.
This seems to be the one case where the object id and the instance
are not the same.
Am I missing something?
Thanks.
sub _RealPrincipal {
my $self = shift;
my %args = @_;
#get the real principal
my $groups = RT::Groups->new($RT::SystemUser);
$groups->Limit(FIELD => 'Domain', VALUE => ref($args{Object}) . '-Role' );
$groups->Limit(FIELD => 'Instance', VALUE => $args{Object}->id );
$groups->Limit(FIELD => 'Type', VALUE => $self->{Role} );
if ($groups->Count) {
return $groups->First->PrincipalObj;
}
else {
$RT::Logger->debug("No group found for Domain: " . ref($args{Object}) . '-Role Instance: ' . $args{Object}->id . ' Type: ' . $self->{Role});
}
return;
}
Jesse and all,
Why doesn RT::System::id return 1 when in the Groups table all
the Role groups for the RT::System Domain have Instance set to 1?
What I mean to say is, why does RT::System::id return 1 when in the Groups
table all the Role groups for the RT::System Domain have Instance set to 0?
‘Bad design’
It should get fixed, but probably for 3.7.
I think 1 is the right value longterm as a 0 value can be confused for an empty value rather easily.
Jesse
Best,
Jesse-----Original Message-----
From: Todd Chapman todd@chaka.net
Date: Thursday, Oct 13, 2005 6:53 pm
Subject: [Rt-devel] [BUG ?] When zero is one.
Jesse and all,
Why doesn RT::System::id return 1 when in the Groups table all
the Role groups for the RT::System Domain have Instance set to 1?
This bit me because I was building an ACL query (as Jesse mentioned) and I needed the principal Id for the correct role account.
This seems to be the one case where the object id and the instance
are not the same.
Am I missing something?
Thanks.
sub _RealPrincipal {
my $self = shift;
my %args = @_;
#get the real principal
my $groups = RT::Groups->new($RT::SystemUser);
$groups->Limit(FIELD => 'Domain', VALUE => ref($args{Object}) . '-Role' );
$groups->Limit(FIELD => 'Instance', VALUE => $args{Object}->id );
$groups->Limit(FIELD => 'Type', VALUE => $self->{Role} );
if ($groups->Count) {
return $groups->First->PrincipalObj;
}
else {
$RT::Logger->debug("No group found for Domain: " . ref($args{Object}) . '-Role Instance: ' . $args{Object}->id . ' Type: ' . $self->{Role});
}
return;
}
Rt-devel mailing list
Rt-devel@lists.bestpractical.com
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel
And what will the Instance for the General queue become?
I worked around it with:
ref($object) =~ /::System$/ ? 0 : $object->id;On Thu, Oct 13, 2005 at 08:27:00PM -0400, Jesse Vincent wrote:
‘Bad design’
It should get fixed, but probably for 3.7.
I think 1 is the right value longterm as a 0 value can be confused for an empty value rather easily.
Jesse
Best,
Jesse
-----Original Message-----
From: Todd Chapman todd@chaka.net
Date: Thursday, Oct 13, 2005 6:53 pm
Subject: [Rt-devel] [BUG ?] When zero is one.
Jesse and all,
Why doesn RT::System::id return 1 when in the Groups table all
the Role groups for the RT::System Domain have Instance set to 1?
This bit me because I was building an ACL query (as Jesse mentioned) and I needed the principal Id for the correct role account.
This seems to be the one case where the object id and the instance
are not the same.
Am I missing something?
Thanks.
sub _RealPrincipal {
my $self = shift;
my %args = @_;
#get the real principal
my $groups = RT::Groups->new($RT::SystemUser);
$groups->Limit(FIELD => 'Domain', VALUE => ref($args{Object}) . '-Role' );
$groups->Limit(FIELD => 'Instance', VALUE => $args{Object}->id );
$groups->Limit(FIELD => 'Type', VALUE => $self->{Role} );
if ($groups->Count) {
return $groups->First->PrincipalObj;
}
else {
$RT::Logger->debug("No group found for Domain: " . ref($args{Object}) . '-Role Instance: ' . $args{Object}->id . ' Type: ' . $self->{Role});
}
return;
}
Rt-devel mailing list
Rt-devel@lists.bestpractical.com
The rt-devel Archives
And what will the Instance for the General queue become?
Why would it change from 1?
I thought Instance was basically the Object Id.
The role Groups for the General queue have Instance = 1;On Fri, Oct 14, 2005 at 01:51:34PM -0400, Jesse Vincent wrote:
On Thu, Oct 13, 2005 at 09:55:05PM -0400, Todd Chapman wrote:
And what will the Instance for the General queue become?
Why would it change from 1?
I worked around it with:
ref($object) =~ /::System$/ ? 0 : $object->id;
On Thu, Oct 13, 2005 at 08:27:00PM -0400, Jesse Vincent wrote:
‘Bad design’
It should get fixed, but probably for 3.7.
I think 1 is the right value longterm as a 0 value can be confused for an empty value rather easily.
Jesse
Best,
Jesse
-----Original Message-----
From: Todd Chapman todd@chaka.net
Date: Thursday, Oct 13, 2005 6:53 pm
Subject: [Rt-devel] [BUG ?] When zero is one.
Jesse and all,
Why doesn RT::System::id return 1 when in the Groups table all
the Role groups for the RT::System Domain have Instance set to 1?
This bit me because I was building an ACL query (as Jesse mentioned) and I needed the principal Id for the correct role account.
This seems to be the one case where the object id and the instance
are not the same.
Am I missing something?
Thanks.
sub _RealPrincipal {
my $self = shift;
my %args = @_;
#get the real principal
my $groups = RT::Groups->new($RT::SystemUser);
$groups->Limit(FIELD => 'Domain', VALUE => ref($args{Object}) . '-Role' );
$groups->Limit(FIELD => 'Instance', VALUE => $args{Object}->id );
$groups->Limit(FIELD => 'Type', VALUE => $self->{Role} );
if ($groups->Count) {
return $groups->First->PrincipalObj;
}
else {
$RT::Logger->debug("No group found for Domain: " . ref($args{Object}) . '-Role Instance: ' . $args{Object}->id . ' Type: ' . $self->{Role});
}
return;
}
Rt-devel mailing list
Rt-devel@lists.bestpractical.com
The rt-devel Archives
–
And what will the Instance for the General queue become?
Why would it change from 1?
I thought Instance was basically the Object Id.
The role Groups for the General queue have Instance = 1;
Right. I don’t see the problem.
And what will the Instance for the General queue become?
Why would it change from 1?
I thought Instance was basically the Object Id.
The role Groups for the General queue have Instance = 1;
Right. I don’t see the problem.
Nevermind. Obviously the Domain would be different, so no problem…