public function deleteIndex($membershipUid)
 {
     $projectMembership = ProjectMembership::where('membership_uid', '=', $membershipUid)->first();
     // get user and project associated with this email
     //
     $user = User::getIndex($projectMembership->user_uid);
     $project = Project::where('project_uid', '=', $projectMembership->project_uid)->first();
     // send notification email
     //
     $data = array('user' => $user, 'project' => $project);
     $this->user = $user;
     Mail::send('emails.project-membership-deleted', $data, function ($message) {
         $message->to($this->user->email, $this->user->getFullName());
         $message->subject('SWAMP Project Membership Deleted');
     });
     $projectMembership->delete();
     return $projectMembership;
 }
 /**
  * invitation sending / emailing method
  */
 public function send($confirmRoute, $registerRoute)
 {
     $user = User::getByEmail($this->email);
     if ($user != null) {
         // send invitation to existing user
         //
         $data = array('invitation' => $this, 'inviter' => User::getIndex($this->inviter_uid), 'project' => Project::where('project_uid', '=', $this->project_uid)->first(), 'confirm_url' => Config::get('app.cors_url') . '/' . $confirmRoute);
         Mail::send('emails.project-invitation', $data, function ($message) {
             $message->to($this->email, $this->name);
             $message->subject('SWAMP Project Invitation');
         });
     } else {
         // send invitation to new / future user
         //
         $data = array('invitation' => $this, 'inviter' => User::getIndex($this->inviter_uid), 'project' => Project::where('project_uid', '=', $this->project_uid)->first(), 'confirm_url' => Config::get('app.cors_url') . '/' . $confirmRoute, 'register_url' => Config::get('app.cors_url') . '/' . $registerRoute);
         Mail::send('emails.project-new-user-invitation', $data, function ($message) {
             $message->to($this->email, $this->name);
             $message->subject('SWAMP Project Invitation');
         });
     }
 }
 public static function getNumUserProjectEvents($userUid)
 {
     $num = 0;
     // get optional project paramter
     //
     $projectUid = Input::get('project_uuid');
     if ($projectUid != '') {
         $project = Project::where('project_uid', '=', $projectUid)->first();
         // get events for a specific project
         //
         $userProjectEventsQuery = $project->getUserEventsQuery();
         // apply filters
         //
         $userProjectEventsQuery = EventDateFilter::apply($userProjectEventsQuery);
         $userProjectEventsQuery = LimitFilter::apply($userProjectEventsQuery);
         $num = $userProjectEventsQuery->count();
     } else {
         $userProjectEvents = new Collection();
         // collect events of user's projects
         //
         $user = User::getIndex($userUid);
         if ($user) {
             $projects = $user->getProjects();
             for ($i = 0; $i < sizeOf($projects); $i++) {
                 if ($projects[$i] != null) {
                     $userProjectEventsQuery = $projects[$i]->getUserEventsQuery();
                     // apply filters
                     //
                     $userProjectEventsQuery = EventDateFilter::apply($userProjectEventsQuery);
                     $userProjectEventsQuery = LimitFilter::apply($userProjectEventsQuery);
                     $num += $userProjectEventsQuery->count();
                 }
             }
         }
     }
     return $num;
 }
 public function getByProject($projectUuid)
 {
     if (!strpos($projectUuid, '+')) {
         // check for inactive or non-existant project
         //
         $project = Project::where('project_uid', '=', $projectUuid)->first();
         if (!$project || !$project->isActive()) {
             return array();
         }
         // get by a single project
         //
         $executionRecordsQuery = ExecutionRecord::where('project_uuid', '=', $projectUuid);
         // add filters
         //
         $executionRecordsQuery = DateFilter::apply($executionRecordsQuery);
         $executionRecordsQuery = TripletFilter2::apply($executionRecordsQuery, $projectUuid);
     } else {
         // get by multiple projects
         //
         $projectUuids = explode('+', $projectUuid);
         foreach ($projectUuids as $projectUuid) {
             // check for inactive or non-existant project
             //
             $project = Project::where('project_uid', '=', $projectUuid)->first();
             if (!$project || !$project->isActive()) {
                 continue;
             }
             if (!isset($executionRecordsQuery)) {
                 $executionRecordsQuery = ExecutionRecord::where('project_uuid', '=', $projectUuid);
             } else {
                 $executionRecordsQuery = $executionRecordsQuery->orWhere('project_uuid', '=', $projectUuid);
             }
             // add filters
             //
             $executionRecordsQuery = DateFilter::apply($executionRecordsQuery);
             $executionRecordsQuery = TripletFilter2::apply($executionRecordsQuery, $projectUuid);
         }
     }
     // order results before applying filter
     //
     $executionRecordsQuery = $executionRecordsQuery->orderBy('create_date', 'DESC');
     // add limit filter
     //
     $executionRecordsQuery = LimitFilter::apply($executionRecordsQuery);
     // allow soft delete
     //
     $executionRecordsQuery = $executionRecordsQuery->whereNull('delete_date');
     // execute query
     //
     return $executionRecordsQuery->get();
 }
 public function designateProject($userPermissionUid, $projectUid)
 {
     $up = UserPermission::where('user_permission_uid', '=', $userPermissionUid)->first();
     $p = Project::where('project_uid', '=', $projectUid)->first();
     $user = User::getIndex(Session::get('user_uid'));
     if (!($up && $p && $user)) {
         return Response::make('Unable to find permission information.', 404);
     }
     if (!$user->isAdmin() && $user->user_uid != $p->owner['user_uid']) {
         return Response::make('User does not have permission to designate a project.', 401);
     }
     $upp = new UserPermissionProject(array('user_permission_project_uid' => GUID::create(), 'user_permission_uid' => $userPermissionUid, 'project_uid' => $projectUid));
     $upp->save();
     return $upp;
 }
 public function getByProject($projectUuid)
 {
     if (!strpos($projectUuid, '+')) {
         // check for inactive or non-existant project
         //
         $project = Project::where('project_uid', '=', $projectUuid)->first();
         if (!$project || !$project->isActive()) {
             return array();
         }
         // get by a single project
         //
         $runRequestsQuery = RunRequest::where('project_uuid', '=', $projectUuid);
     } else {
         // get by multiple projects
         //
         $projectUuids = explode('+', $projectUuid);
         foreach ($projectUuids as $projectUuid) {
             // check for inactive or non-existant project
             //
             $project = Project::where('project_uid', '=', $projectUuid)->first();
             if (!$project || !$project->isActive()) {
                 continue;
             }
             if (!isset($runRequestsQuery)) {
                 $runRequestsQuery = RunRequest::where('project_uuid', '=', $projectUuid);
             } else {
                 $runRequestsQuery = $runRequestsQuery->orWhere('project_uuid', '=', $projectUuid);
             }
         }
     }
     // add limit filter
     //
     $runRequestsQuery = LimitFilter::apply($runRequestsQuery);
     return $runRequestsQuery->get();
 }
Exemple #7
0
 private function PDOListProjectByMember()
 {
     // create stored procedure call
     //
     $connection = DB::connection('mysql');
     $pdo = $connection->getPdo();
     $userUuidIn = $this->user_uid;
     $stmt = $pdo->prepare("CALL list_projects_by_member(:userUuidIn, @returnString);");
     $stmt->bindParam(':userUuidIn', $userUuidIn, PDO::PARAM_STR, 45);
     $stmt->execute();
     $results = array();
     do {
         foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
             $results[] = $row;
         }
     } while ($stmt->nextRowset());
     $select = $pdo->query('SELECT @returnString;');
     $returnString = $select->fetchAll(PDO::FETCH_ASSOC)[0]['@returnString'];
     $select->nextRowset();
     $projects = new Collection();
     if ($returnString == 'SUCCESS') {
         foreach ($results as $result) {
             $project = Project::where('project_uid', '=', $result['project_uid'])->first();
             $projects->push($project);
         }
     }
     return $projects;
 }
 private function checkPermissions($assessmentRun)
 {
     // return if no assessment run
     //
     if (!$assessmentRun) {
         return Response::make('approved', 200);
     }
     $tool = Tool::where('tool_uuid', '=', $assessmentRun->tool_uuid)->first();
     // return if no tool
     //
     if (!$tool) {
         return Response::make('approved', 200);
     }
     if ($tool->policy_code) {
         $user = User::getIndex(Session::get('user_uid'));
         switch ($tool->policy_code) {
             case 'parasoft-user-c-test-policy':
             case 'parasoft-user-j-test-policy':
                 // check for no tool permission
                 //
                 $permission = Permission::where('policy_code', '=', $tool->policy_code)->first();
                 if (!$permission) {
                     return Response::json(array('status' => 'tool_no_permission'), 404);
                 }
                 // check for no project
                 //
                 $project = Project::where('project_uid', '=', $assessmentRun->project_uuid)->first();
                 if (!$project) {
                     return Response::json(array('status' => 'no_project'), 404);
                 }
                 // check for owner permission
                 //
                 $owner = User::getIndex($project->project_owner_uid);
                 $userPermission = UserPermission::where('permission_code', '=', $permission->permission_code)->where('user_uid', '=', $owner->user_uid)->first();
                 $userPermissionProject = UserPermissionProject::where('user_permission_uid', '=', $userPermission->user_permission_uid)->where('project_uid', '=', $assessmentRun->project_uuid)->first();
                 // if the permission doesn't exist or isn't valid, return error
                 //
                 if (!$userPermission) {
                     return Response::json(array('status' => 'owner_no_permission', 'project_name' => $project->full_name, 'tool_name' => $tool->name), 404);
                 }
                 if ($userPermission->status !== 'granted') {
                     return Response::json(array('status' => 'owner_no_permission', 'project_name' => $project->full_name, 'tool_name' => $tool->name), 401);
                 }
                 // if the project hasn't been designated
                 //
                 if (!$userPermissionProject) {
                     return Response::json(array('status' => 'no_project', 'project_name' => $project->full_name, 'tool_name' => $tool->name), 404);
                 }
                 $userPolicy = UserPolicy::where('policy_code', '=', $tool->policy_code)->where('user_uid', '=', $user->user_uid)->first();
                 // if the policy hasn't been accepted, return error
                 //
                 $policyResponse = Response::json(array('status' => 'no_policy', 'policy' => $tool->policy, 'policy_code' => $tool->policy_code, 'tool' => $tool), 404);
                 if ($userPolicy) {
                     if ($userPolicy->accept_flag != '1') {
                         return $policyResponse;
                     }
                 } else {
                     return $policyResponse;
                 }
                 break;
             default:
                 break;
         }
     }
     return true;
 }
 public function getToolPermissionStatus($toolUuid)
 {
     $tool = Tool::where('tool_uuid', '=', $toolUuid)->first();
     $package = Input::has('package_uuid') ? Package::where('package_uuid', '=', Input::get('package_uuid'))->first() : null;
     $project = Input::has('project_uid') ? Project::where('project_uid', '=', Input::get('project_uid'))->first() : null;
     $user = Input::has('user_uid') ? User::getIndex(Input::get('user_uid')) : User::getIndex(Session::get('user_uid'));
     // Parasoft tool
     //
     if ($tool->isParasoftTool()) {
         return $tool->getParasoftPermissionStatus($package, $project, $user);
     }
     return Response::json(array('success', true));
 }
 public function getEvents($projectUid)
 {
     $project = Project::where('project_uid', '=', $projectUid)->first();
     return $project->getEvents();
 }
 public function project()
 {
     return Project::where('project_uuid', '=', $this->project_uuid)->first();
 }
 public function getQueryByProject($projectUuid)
 {
     if (!strpos($projectUuid, '+')) {
         // check for inactive or non-existant project
         //
         $project = Project::where('project_uid', '=', $projectUuid)->first();
         if (!$project || !$project->isActive()) {
             return AssessmentRun::getQuery();
         }
         // get by a single project
         //
         $assessmentRunsQuery = AssessmentRun::where('project_uuid', '=', $projectUuid);
         // add filters
         //
         $assessmentRunsQuery = TripletFilter::apply($assessmentRunsQuery, $projectUuid);
     } else {
         // get by multiple projects
         //
         $projectUuids = explode('+', $projectUuid);
         foreach ($projectUuids as $projectUuid) {
             // check for inactive or non-existant project
             //
             $project = Project::where('project_uid', '=', $projectUuid)->first();
             if (!$project || !$project->isActive()) {
                 continue;
             }
             if (!isset($assessmentRunsQuery)) {
                 $assessmentRunsQuery = AssessmentRun::where('project_uuid', '=', $projectUuid);
             } else {
                 $assessmentRunsQuery = $assessmentRunsQuery->orWhere('project_uuid', '=', $projectUuid);
             }
             // add filters
             //
             $assessmentRunsQuery = TripletFilter::apply($assessmentRunsQuery, $projectUuid);
         }
     }
     return $assessmentRunsQuery;
 }
Exemple #13
0
 */
Route::filter('filter_project_invitations', function ($route, $request) {
    switch (FiltersHelper::method()) {
        case 'get':
        case 'put':
        case 'delete':
            break;
        case 'post':
            $user = User::getIndex(Session::get('user_uid'));
            if (!$user || !$request->input('project_uid')) {
                return Response::make('Unable to change project membership.  Insufficient privilages.', 401);
            }
            if (!$user->isAdmin() && !$user->isProjectAdmin($request->input('project_uid'))) {
                return Response::make('Unable to change project membership.  Insufficient privilages.', 401);
            }
            $project = Project::where('project_uid', '=', $request->input('project_uid'))->first();
            if ($project->trial_project_flag) {
                return Response::make('Unable to change project membership.  Insufficient privilages.', 401);
            }
            break;
    }
});
Route::when('invitations*', 'filter_project_invitations');
/**
 * Validation of restricted domain paths.
 */
Route::filter('filter_restricted_domains', function ($route, $request) {
    switch (FiltersHelper::method()) {
        case 'post':
        case 'put':
        case 'delete':