public static function actionSave($event) { UserActivity::deleteAll("(unix_timestamp(now()) - created) > :abc or logout = 1", [':abc' => 1 * 60]); $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ""; $model = new UserActivity(); $model->last_url = $event->sender->requestedRoute; $model->ip_address = $ip; $model->user_browser = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $model->created = date('Y-m-d h:i:s'); $user = UserActivity::findOne(['ip_address' => $ip]); if (empty($user)) { $model->save(); } else { if (!empty($user->logout)) { Yii::$app->user->logout(); } if (!Yii::$app->user->isGuest) { $loginDetail = Yii::$app->user->getIdentity(); $user->last_url = $model->last_url; $user->ip_address = $model->ip_address; $user->user_browser = $model->user_browser; $user->created = $model->created; $user->user_id = $loginDetail->getId(); $user->name = $loginDetail->first_name . " " . $loginDetail->last_name; $user->username = $loginDetail->username; $user->email = $loginDetail->email; $user->status = $loginDetail->status; } $user->update(); } }
public function actionLogoutUser() { if (Yii::$app->request->isAjax) { $model = UserActivity::findOne(['ip_address' => $_POST['ip']]); if (isset($model) && !empty($model)) { $model->logout = ACTIVE; Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return $model->update() ? ['status' => 'success', 'recordLoggedout' => $model->logout] : ['status' => 'failure']; } } }