[Bio] / SubsystemEditor / WebPage / ShowSubsystem.pm Repository:
ViewVC logotype

Diff of /SubsystemEditor/WebPage/ShowSubsystem.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25, Thu Mar 19 12:03:24 2009 UTC revision 1.26, Wed Apr 8 15:39:04 2009 UTC
# Line 188  Line 188 
188    elsif ( defined( $cgi->param( 'GrantRightButton' ) ) ) {    elsif ( defined( $cgi->param( 'GrantRightButton' ) ) ) {
189      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {
190        my $newAnno = $cgi->param( 'ANNOBOX' );        my $newAnno = $cgi->param( 'ANNOBOX' );
191          my $newScope;
192          if ($newAnno =~ /group\:(.*)/) {
193            $newScope = $dbmaster->Scope->init( { application => undef, name => $1 } );
194          } else {
195        my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );        my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );
196        if ( defined( $thisUsers->[0] ) ) {        if ( defined( $thisUsers->[0] ) ) {
197              $newScope = $thisUsers->[0]->get_user_scope();
198            }
199          }
200          if (defined($newScope)) {
201          my $rights = $dbmaster->Rights->get_objects( { name => 'edit',          my $rights = $dbmaster->Rights->get_objects( { name => 'edit',
202                                                         data_type => 'subsystem',                                                         data_type => 'subsystem',
203                                                         data_id => $name,                                                         data_id => $name,
204                                                         scope => $thisUsers->[0]->get_user_scope() } );                                                         scope => $newScope } );
205          if ( defined( $rights->[0] ) ) {          if ( defined( $rights->[0] ) ) {
206            $self->application->add_message( 'warning', "User $newAnno already has the right to edit this subsystem." );            $self->application->add_message( 'warning', "User $newAnno already has the right to edit this subsystem." );
207          }          }
# Line 204  Line 211 
211                                                     name => 'edit',                                                     name => 'edit',
212                                                     data_type => 'subsystem',                                                     data_type => 'subsystem',
213                                                     data_id => $name,                                                     data_id => $name,
214                                                     scope => $thisUsers->[0]->get_user_scope() } );                                                     scope => $newScope } );
215            if ( $right ) {            if ( $right ) {
216              $self->application->add_message( 'info', "$newAnno can now edit this subsystem" );              $self->application->add_message( 'info', "$newAnno can now edit this subsystem" );
217            }            }
# Line 221  Line 228 
228    elsif ( defined( $cgi->param( 'RevokeRightButton' ) ) ) {    elsif ( defined( $cgi->param( 'RevokeRightButton' ) ) ) {
229      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {
230        my $newAnno = $cgi->param( 'ALANNOBOX' );        my $newAnno = $cgi->param( 'ALANNOBOX' );
231          my $newScope;
232          if ($newAnno =~ /group\:(.*)/) {
233            $newScope = $dbmaster->Scope->init( { application => undef, name => $1 } );
234          } else {
235        my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );        my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );
236            if ( defined( $thisUsers->[0] ) ) {
237              $newScope = $thisUsers->[0]->get_user_scope();
238            }
239          }
240        my $rights = $dbmaster->Rights->get_objects( { name => 'edit',        my $rights = $dbmaster->Rights->get_objects( { name => 'edit',
241                                                       data_type => 'subsystem',                                                       data_type => 'subsystem',
242                                                       data_id => $name,                                                       data_id => $name,
243                                                       scope => $thisUsers->[0]->get_user_scope() } );                                                       scope => $newScope } );
244    
245        my $thisRight = $rights->[0];        my $thisRight = $rights->[0];
246        if ( defined( $thisRight ) && $thisRight->delegated ) {        if ( defined( $thisRight ) && $thisRight->delegated ) {
# Line 303  Line 318 
318          }          }
319        }        }
320      }      }
321    
322        # check for groups
323        my $user_groups = $user->scopes();
324        foreach my $scope (@$user_groups) {
325          next if ($scope->name =~ /^user\:/);
326          next if ($scope->name eq "Annotators");
327          next if ($scope->name eq "Public");
328          if (scalar(@{$dbmaster->Rights->get_objects( { name => 'edit',
329                                                         data_type => 'subsystem',
330                                                         data_id => $name,
331                                                         scope => $scope,
332                                                         granted => 1 } )})) {
333            $alreadyAnnotatorsBox .= "<OPTION VALUE='group:".$scope->name()."'>group: ".$scope->name()."</OPTION>";
334          } else {
335            $annotatorsBox .= "<OPTION VALUE='group:".$scope->name()."'>group: ".$scope->name()."</OPTION>";
336          }
337        }
338    
339      $annotatorsBox .= "</SELECT>";      $annotatorsBox .= "</SELECT>";
340      $alreadyAnnotatorsBox .= "</SELECT>";      $alreadyAnnotatorsBox .= "</SELECT>";
341    

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3