Add a workflow activity that reverifies that all subscribers to a CS can still view the CS, otherwise, remove them. Hook up the workflow to the update method in Collaboriation.pm and create an instance for it if the groupIdView changes. Add tests for the activity. Add a new workflow. Update the default WebGUI.conf.

This commit is contained in:
Colin Kuskie 2010-11-30 15:07:49 -08:00
parent e2115411b5
commit dd7e6016dc
9 changed files with 253 additions and 2 deletions

View file

@ -1566,6 +1566,31 @@ sub unsubscribe {
}
#-------------------------------------------------------------------
=head2 update ( )
Update the base method to handle checking valid users in the subscription group if
view permissions have changed.
=cut
sub update {
my $self = shift;
my $origGroupIdView = $self->get('groupIdView');
$self->next::method(@_);
return if $self->get('groupIdView') eq $origGroupIdView;
my $instance_data = {
workflowId => 'xR-_GRRbjBojgLsFx3dEMA',
className => 'WebGUI::Asset',
methodName => 'newByDynamicClass',
parameters => $self->getId,
};
my $instance = WebGUI::Workflow::Instance->create($self->session, $instance_data);
$instance->start('skipRealtime');
}
#-------------------------------------------------------------------
=head2 view