[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.26, Wed Apr 8 15:39:04 2009 UTC revision 1.27, Tue May 12 13:31:39 2009 UTC
# Line 42  Line 42 
42    
43    # subsystem name and 'nice name' #    # subsystem name and 'nice name' #
44    my $name = $cgi->param( 'subsystem' );    my $name = $cgi->param( 'subsystem' );
45      $name = uri_unescape( $name );
46      $name =~ s/&#39/'/g;
47    my $ssname = $name;    my $ssname = $name;
48    $ssname =~ s/\_/ /g;    $ssname =~ s/\_/ /g;
49    
# Line 188  Line 190 
190    elsif ( defined( $cgi->param( 'GrantRightButton' ) ) ) {    elsif ( defined( $cgi->param( 'GrantRightButton' ) ) ) {
191      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {
192        my $newAnno = $cgi->param( 'ANNOBOX' );        my $newAnno = $cgi->param( 'ANNOBOX' );
       my $newScope;  
       if ($newAnno =~ /group\:(.*)/) {  
         $newScope = $dbmaster->Scope->init( { application => undef, name => $1 } );  
       } else {  
193          my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );          my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );
194          if ( defined( $thisUsers->[0] ) ) {          if ( defined( $thisUsers->[0] ) ) {
195            $newScope = $thisUsers->[0]->get_user_scope();  
         }  
       }  
       if (defined($newScope)) {  
196          my $rights = $dbmaster->Rights->get_objects( { name => 'edit',          my $rights = $dbmaster->Rights->get_objects( { name => 'edit',
197                                                         data_type => 'subsystem',                                                         data_type => 'subsystem',
198                                                         data_id => $name,                                                         data_id => $name,
199                                                         scope => $newScope } );                                                         scope => $thisUsers->[0]->get_user_scope() } );
200          if ( defined( $rights->[0] ) ) {          if ( defined( $rights->[0] ) ) {
201            $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." );
202          }          }
# Line 211  Line 206 
206                                                     name => 'edit',                                                     name => 'edit',
207                                                     data_type => 'subsystem',                                                     data_type => 'subsystem',
208                                                     data_id => $name,                                                     data_id => $name,
209                                                     scope => $newScope } );                                                     scope => $thisUsers->[0]->get_user_scope() } );
210            if ( $right ) {            if ( $right ) {
211              $self->application->add_message( 'info', "$newAnno can now edit this subsystem" );              $self->application->add_message( 'info', "$newAnno can now edit this subsystem" );
212            }            }
# Line 228  Line 223 
223    elsif ( defined( $cgi->param( 'RevokeRightButton' ) ) ) {    elsif ( defined( $cgi->param( 'RevokeRightButton' ) ) ) {
224      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {      if ( $can_alter && $user->has_right( undef, 'edit', 'subsystem', $name, 1 ) ) {
225        my $newAnno = $cgi->param( 'ALANNOBOX' );        my $newAnno = $cgi->param( 'ALANNOBOX' );
       my $newScope;  
       if ($newAnno =~ /group\:(.*)/) {  
         $newScope = $dbmaster->Scope->init( { application => undef, name => $1 } );  
       } else {  
226          my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );          my $thisUsers = $dbmaster->User->get_objects( { login => $newAnno } );
         if ( defined( $thisUsers->[0] ) ) {  
           $newScope = $thisUsers->[0]->get_user_scope();  
         }  
       }  
227        my $rights = $dbmaster->Rights->get_objects( { name => 'edit',        my $rights = $dbmaster->Rights->get_objects( { name => 'edit',
228                                                       data_type => 'subsystem',                                                       data_type => 'subsystem',
229                                                       data_id => $name,                                                       data_id => $name,
230                                                       scope => $newScope } );                                                       scope => $thisUsers->[0]->get_user_scope() } );
231    
232        my $thisRight = $rights->[0];        my $thisRight = $rights->[0];
233        if ( defined( $thisRight ) && $thisRight->delegated ) {        if ( defined( $thisRight ) && $thisRight->delegated ) {
# Line 318  Line 305 
305          }          }
306        }        }
307      }      }
   
     # check for groups  
     my $user_groups = $user->scopes();  
     foreach my $scope (@$user_groups) {  
       next if ($scope->name =~ /^user\:/);  
       next if ($scope->name eq "Annotators");  
       next if ($scope->name eq "Public");  
       if (scalar(@{$dbmaster->Rights->get_objects( { name => 'edit',  
                                                      data_type => 'subsystem',  
                                                      data_id => $name,  
                                                      scope => $scope,  
                                                      granted => 1 } )})) {  
         $alreadyAnnotatorsBox .= "<OPTION VALUE='group:".$scope->name()."'>group: ".$scope->name()."</OPTION>";  
       } else {  
         $annotatorsBox .= "<OPTION VALUE='group:".$scope->name()."'>group: ".$scope->name()."</OPTION>";  
       }  
     }  
   
308      $annotatorsBox .= "</SELECT>";      $annotatorsBox .= "</SELECT>";
309      $alreadyAnnotatorsBox .= "</SELECT>";      $alreadyAnnotatorsBox .= "</SELECT>";
310    

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3