Changeset 1150 for trunk/common


Ignore:
Timestamp:
07/05/11 05:31:36 (11 months ago)
Author:
savin.tiberiu@…
Message:

Permissions for interns

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/common/security.php

    r1149 r1150  
    132132        case 'task-tag': 
    133133        case 'task-reeval': 
    134         case 'round-delete': 
     134        case 'task-edit-ratings':  
    135135        case 'textblock-delete': 
    136136        case 'textblock-delete-revision': 
     137        case 'round-tag': 
     138        case 'round-view-progress':  
    137139        case 'grader-overwrite': 
    138140        case 'grader-delete': 
     
    145147        case 'task-change-open': 
    146148        case 'textblock-change-security': 
    147         case 'task-edit-owner': 
    148         case 'task-edit-ratings': 
    149         case 'round-tag': 
    150         case 'round-view-progress': 
    151149        case 'textblock-tag': 
    152150        case 'job-reeval': 
     151        case 'round-delete': 
     152        case 'task-edit-owner': 
    153153        case 'simple-critical': 
    154154            return 'simple-critical'; 
     
    375375    $usersec = getattr($user, 'security_level', 'anonymous'); 
    376376    $is_admin = $usersec == 'admin'; 
     377    $is_intern = $usersec == 'intern'; 
    377378    $is_owner = ($task['user_id'] == $user['id'] && $usersec == 'helper'); 
     379    $is_boss = $is_admin || $is_intern || $is_owner; 
    378380 
    379381    // Log query response. 
     
    390392        // Read-only access. 
    391393        case 'simple-view': 
    392             return ($task['hidden'] == false) || $is_owner || $is_admin; 
     394            return ($task['hidden'] == false) || $is_boss; 
    393395 
    394396        // Edit access. 
    395397        case 'simple-rev-edit': 
    396             return $is_owner || $is_admin; 
     398            return $is_boss; 
    397399 
    398400        case 'simple-edit': 
    399             return $is_owner || $is_admin; 
     401            return $is_boss; 
    400402 
    401403        // View tags 
     
    408410                } 
    409411            } 
    410             return $in_archive || $is_owner || $is_admin; 
     412            return $in_archive || $is_boss; 
    411413 
    412414        // Admin stuff: 
     
    441443                return false; 
    442444            } 
    443             if ($is_owner || $is_admin) { 
     445            if ($is_boss) { 
    444446                return true; 
    445447            } 
     
    465467 
    466468        case 'sensitive-info': 
    467             return ($usersec == 'admin' || $usersec == 'helper'); 
     469            return $is_boss; 
    468470 
    469471        default: 
     
    476478    $usersec = getattr($user, 'security_level', 'anonymous'); 
    477479    $is_admin = $usersec == 'admin'; 
     480    $is_intern = $usersec == 'intern'; 
    478481 
    479482    // Log query response. 
     
    495498              return $usersec != 'anonymous'; 
    496499          } else { 
    497               return $is_admin; 
     500              return $is_admin || $is_intern; 
    498501          } 
    499502 
     
    504507          } 
    505508          if ($round['type'] == 'user-defined') { 
    506               return $user['id'] == $round['user_id'] || $is_admin; 
     509              return $user['id'] == $round['user_id'] || $is_admin || $is_intern; 
    507510          } else { 
    508               return $is_admin; 
     511              return $is_admin || $is_intern; 
    509512          } 
    510513 
    511514        case 'round-view-tasks': 
    512             return $round['state'] != 'waiting' || $is_admin; 
     515            return $round['state'] != 'waiting' || $is_admin || $is_intern; 
    513516        case 'round-view-scores': 
    514             return $round['public_eval'] == true || $is_admin; 
     517            return $round['public_eval'] == true || $is_admin || $is_intern; 
    515518 
    516519        case 'simple-edit': 
     520            return $is_admin || $is_intern; 
     521 
    517522        case 'simple-critical': 
    518523            return $is_admin; 
     
    530535 
    531536        case 'sensitive-info': 
    532             return ($usersec == 'admin' || $usersec == 'helper'); 
     537            return in_array($usersec, array('admin', 'intern', 'helper')); 
    533538 
    534539        default: 
     
    577582    $usersec = getattr($user, 'security_level', 'anonymous'); 
    578583    $is_admin = $usersec == 'admin'; 
     584    $is_intern = $usersec == 'intern'; 
    579585    $is_owner = ($job['user_id'] == $user['id']); 
    580586    $is_task_owner = ($job['task_owner_id'] == $user['id'] && $usersec == 'helper'); 
    581587    $can_view_job = ($job['task_hidden'] == false) || $is_task_owner || $is_admin; 
    582     $can_view_source = ($job['task_open_source'] == true) || $is_task_owner || $is_owner || $is_admin; 
     588    $can_view_source = ($job['task_open_source'] == true) || $is_task_owner ||  
     589                       $is_owner || $is_admin || $is_intern; 
    583590    $can_view_source_size = ($job['round_type'] == "archive") || 
    584591                            ($job['round_type'] != "archive" && $job['round_state'] == "complete") || 
    585592                            $can_view_source; 
    586     $can_view_score = ($job['round_public_eval'] == true) || $is_task_owner || $is_admin; 
    587     $can_view_partial_feedback = $is_owner || $is_admin; 
    588     $can_view_sensitive_info = ($usersec == 'admin' || $usersec == 'helper'); 
     593    $can_view_score = ($job['round_public_eval'] == true) || $is_task_owner || $is_admin || $is_intern; 
     594    $can_view_partial_feedback = $is_owner || $is_admin || $is_intern; 
     595    $can_view_sensitive_info = in_array($usersec, array('admin', 'intern', 'helper')); 
    589596 
    590597    // Log query response. 
     
    600607    switch ($action) { 
    601608        case 'simple-critical': 
    602             return $is_admin; 
     609            return $is_admin || $is_intern; 
    603610 
    604611        case 'job-view': 
Note: See TracChangeset for help on using the changeset viewer.