/** * @param $input * @return Request */ public function createRequest($input) { $req = new Request(); $req->fill($input); $req->save(); return $req; }
/** * Creating a request * * @param type $user1_id User who added id * @param type $user2_id User whos adding id * @param \common\components\RequestType $req_type type of request etc friend_request * @param type $date date of added * * @return boolean false if reqtype is null, */ public static function createRequest(UserId $user1_id, UserId $user2_id, $req_type, $date) { $check = Request::find()->select('req_id')->where(['user1_id' => $user1_id->getId(), 'user2_id' => $user2_id->getId()])->one(); if (!is_null($check)) { return true; } if (!RequestType::isValid($req_type)) { throw new InvalidEnumKeyException("ERROR, VAL: " . $req_type); } $data = new Request(); $data->req_type = $req_type; $data->user1_id = $user1_id->getId(); $data->user2_id = $user2_id->getId(); $data->date = $date; return $data->save(); }
/** * Display a list of files available * to the user */ public function actionIndex() { $user = \Yii::$app->user->identity; $requestform = new RequestForm(); // get the list of files $tfiles = File::find()->orderBy('filename')->all(); //Bucket to store files we find $files = []; // Iterate through the list of files!! foreach ($tfiles as $f) { $include_file = TRUE; $groups = FileFileGroup::find()->where(['file_id' => $f->id])->all(); foreach ($groups as $group) { // Get users for the file groups $usersgroup = UserFileGroup::find()->where(['file_group_id' => $group->group_id])->all(); foreach ($usersgroup as $ug) { if ($ug->user_id == $user->id) { // exclude this file $include_file == FALSE; } } } if ($include_file == TRUE) { array_push($files, $f); } } // WHat do we do if they belong to everything??? if (sizeof($files) == 0) { $this->redirect(['site/index']); } // See if user has access to any of these files //var_dump($files); //exit; $selected_file = []; // To lazy to create a ActiveForm object to hold these values if (Yii::$app->request->post()) { $post = Yii::$app->request->post(); $requestform->load(Yii::$app->request->post()); if ($requestform->validate()) { // Create the request entry $request = new Request(); $request->create_datetime = date("Y-m-d H:i:s"); $request->reason = $requestform->request; $request->user_id = $user->id; $request->save(); if ($requestform->file !== NULL && sizeof($requestform->file) > 0) { foreach ($requestform->file as $f) { $rf = new RequestFile(); $rf->file_id = $f; $rf->request_id = $request->id; $rf->save(); } // Send the email to the administrators $admins = User::find()->where(['role_id' => 1])->all(); $body = "A new file access request has been submitted.\n"; $body .= "Please visit on the following link:\n"; $body .= 'http://gmod.wsu.edu/portal/request/verify?id=' . $request->id . ''; foreach ($admins as $admin) { Yii::$app->mailer->compose()->setTo($admin->email)->setFrom([$admin->email => $admin->username])->setSubject("File Access Request for GMOD Portal")->setTextBody($body)->send(); } $this->redirect(['requestconfirm']); } } } return $this->render('index', ['model' => $requestform, 'user' => $user, 'files' => $files, 'selected_file' => $selected_file]); }