Example #1
0
    }
    // while the project is being amended, non-officers see the "show" version of the project (no SOWComposer)
    if (!Auth::officer() && $project->status() == Project::STATUS_AMENDING_SOW) {
        return;
    }
    // non-officers who try to view an SOWComposer page get sent home
    if (!Auth::officer()) {
        return Redirect::to('/');
    }
    $route = $project->current_sow_composer_route_name();
    return Redirect::to_route($route, array($project->id));
});
Route::filter('template_exists_and_is_forkable', function () {
    $project = Config::get('project');
    $id = Request::$route->parameters[1];
    $template = Project::where_id($id)->where_public(true)->where_project_type_id($project->project_type_id)->first();
    if (!$template) {
        return Redirect::to_route('project_background', array($project->id));
    }
    Config::set('template', $template);
});
Route::filter('i_am_collaborator', function () {
    // also allowed if user is ADMIN
    $project = Config::get('project');
    if (!$project->is_mine() && !Auth::officer()->is_role_or_higher(Officer::ROLE_ADMIN)) {
        return Redirect::to('/');
    }
});
Route::filter('i_am_owner', function () {
    $project = Config::get('project');
    if (!$project->i_am_owner()) {