Restricted resultsets
- How to use it
- In the schema, load:
__PACKAGE__->load_components(qw/Schema::RestrictWithObject/);
- Then, to use the User object to restrict the Foo table
- We add code to the User object:
package ...::User;
sub restrict_Foo_resultset {
my $self = shift; # user object
my $rs = shift; # unrestricted resultset
return $self->related_resultset('foos');
# or $rs->search({ user => $self });
}
- Then, get a restricted schema:
my $schema = MyApp::Schema->connect(...);
my $user = $schema->resultset('User')->find('jrockway');
my $restricted = $schema->restrict_with_object($user);
my $foo_rs = $restricted->resultset('Foo');
$foo_rs->delete; # only delete jrockway's foos!