/**
  * Membership
  */
 public function actionMembership($id)
 {
     if (!Yii::$app->user->can("admin")) {
         throw new HttpException(403, 'You are not allowed to perform this action.');
     }
     $filegroupmodel = FileGroup::findOne($id);
     $users = User::find()->where(['status' => 1])->all();
     $selectedusers = UserFileGroup::find()->where(['file_group_id' => $id])->all();
     if (Yii::$app->request->post()) {
         $post = Yii::$app->request->post();
         UserFileGroup::deleteAll(['file_group_id' => $id]);
         //var_dump($post['Post']['membership']);
         //    exit;
         if (isset($post['Post']['membership'])) {
             foreach ($post['Post']['membership'] as $perm) {
                 $ffg = new UserFileGroup();
                 $ffg->user_id = $perm;
                 $ffg->file_group_id = $id;
                 if ($ffg->save()) {
                     //return $this->redirect(['membership','id'=>$id]);
                 }
             }
         }
         return $this->redirect(['view', 'id' => $id]);
     } else {
         return $this->render('membership', ['filegroupmodel' => $filegroupmodel, 'userfilegroups' => $selectedusers, 'users' => $users]);
     }
 }
 public function actionVerifyapprove($request_id, $file_id, $user_id, $group)
 {
     if (!Yii::$app->user->can("admin")) {
         throw new HttpException(403, 'You are not allowed to perform this action.');
     }
     $response = ['status' => 'fail'];
     // If we get a numeric group, then we are using an existing group
     if (is_numeric($group)) {
         // First check to see if a record exists because the
         // stupid front end is not very good at figuring this out
         $ufg = UserFileGroup::find()->where(['user_id' => $user_id])->andWhere(['file_group_id' => $group])->one();
         //var_dump($ufg);
         //exit;
         // If nothing is found, create the new entry
         if ($ufg === NULL) {
             // Now assign the user to this filegroup
             $ufg = new UserFileGroup();
             $ufg->user_id = $user_id;
             $ufg->file_group_id = $group;
             if ($ufg->save()) {
                 $rqf = RequestFile::find()->where(['request_id' => $request_id, 'file_id' => $file_id])->one();
                 $rqf->granted = 1;
                 if ($rqf->save()) {
                     $this->commitRequest($request_id);
                     $response = ['status' => 'success', 'message' => ''];
                 } else {
                     $response = ['status' => 'fail', 'message' => 'Error saving request file'];
                 }
             } else {
                 $response = ['status' => 'fail', 'message' => 'Error saving request file'];
             }
         } else {
             $response = ['status' => 'fail', 'message' => 'Record already exists'];
             $rqf = RequestFile::find()->where(['request_id' => $request_id, 'file_id' => $file_id])->one();
             $rqf->granted = 1;
             if ($rqf->save()) {
                 $this->commitRequest($request_id);
                 $response = ['status' => 'success', 'message' => ''];
             }
         }
     } else {
         // Need to create new the group and assign the file id
         $fg = new FileGroup();
         $fg->group_name = $group;
         $fg->description = "Auto Generated through Permission Tool, please provide a more descriptive group name if you want.";
         $fg->status = 'active';
         $fg->is_deleted = 0;
         if ($fg->save()) {
             // Associate the file group with this file
             $ffg = new FileFileGroup();
             $ffg->file_id = $file_id;
             $ffg->group_id = $fg->id;
             if ($ffg->save()) {
                 // Now assign the user to this filegroup
                 $ufg = new UserFileGroup();
                 $ufg->user_id = $user_id;
                 $ufg->file_group_id = $fg->id;
                 if ($ufg->save()) {
                     $rqf = RequestFile::find()->where(['request_id' => $request_id, 'file_id' => $file_id])->one();
                     $rqf->granted = 1;
                     if ($rqf->save()) {
                         $response = ['status' => 'success'];
                         $this->commitRequest($request_id);
                     } else {
                         $response = ['status' => 'fail'];
                     }
                 } else {
                     $response = ['status' => 'fail'];
                 }
             } else {
                 $response = ['status' => 'fail'];
             }
         } else {
             $response = ['status' => 'fail'];
         }
     }
     \Yii::$app->response->format = 'json';
     return $response;
 }
Beispiel #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getGroups()
 {
     return $this->hasMany(FileGroup::className(), ['id' => 'group_id'])->viaTable('file_filegroup', ['file_id' => 'id']);
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getGroup()
 {
     return $this->hasOne(FileGroup::className(), ['id' => 'group_id']);
 }