示例#1
0
 /**
  * see if the user id matches against the moduleName, controllerName, actionName inside of the rights database.
  *
  * @param string $moduleName     Module Name
  * @param string $controllerName The name of the controller without suffix "Controller"
  * @param string $actionName     The name of the action without prefix "action";
  *
  * @return bool
  */
 public function matchRoute($userId, $route)
 {
     UserOnline::refreshUser($userId, $route);
     $groups = Yii::$app->db->createCommand('SELECT * FROM admin_user_group AS t1 LEFT JOIN(admin_group_auth as t2 LEFT JOIN (admin_auth as t3) ON (t2.auth_id = t3.id)) ON (t1.group_id=t2.group_id) WHERE t1.user_id=:user_id AND t3.route=:route')->bindValue('user_id', $userId)->bindValue('route', $route)->queryAll();
     if (is_array($groups) && count($groups) > 0) {
         return true;
     }
     return false;
 }
示例#2
0
 public function login()
 {
     if ($this->validate()) {
         $user = $this->getUser();
         $user->scenario = 'login';
         $user->auth_token = \yii::$app->security->hashData(\yii::$app->security->generateRandomString(), $user->password_salt);
         $user->save();
         $login = new UserLogin();
         $login->setAttributes(["auth_token" => $user->auth_token, "user_id" => $user->id]);
         $login->insert();
         UserOnline::refreshUser($user->id, 'login');
         return $user;
     } else {
         return false;
     }
 }
示例#3
0
 public function testAddUser()
 {
     UserOnline::clearList(0);
     $this->assertEquals(0, UserOnline::getCount());
     UserOnline::refreshUser(1, 'my/test');
     // create
     UserOnline::refreshUser(1, 'my/test');
     // refresh
     $this->assertEquals(1, UserOnline::getCount());
     $list = UserOnline::getList();
     $this->assertArrayHasKey(0, $list);
     UserOnline::clearList(0);
     $this->assertEquals(true, is_array(UserOnline::getList()));
     $this->assertEquals(0, count(UserOnline::getList()));
     UserOnline::refreshUser(1, 'my/test');
     // create
     UserOnline::removeUser(1);
 }
示例#4
0
 public function login()
 {
     if ($this->validate()) {
         $user = $this->getUser();
         $user->detachBehavior('LogBehavior');
         $user->scenario = 'login';
         $user->force_reload = 0;
         $user->auth_token = Yii::$app->security->hashData(Yii::$app->security->generateRandomString(), $user->password_salt);
         $user->save();
         $login = new UserLogin();
         $login->setAttributes(['auth_token' => $user->auth_token, 'user_id' => $user->id]);
         $login->insert();
         UserOnline::refreshUser($user->id, 'login');
         return $user;
     } else {
         return false;
     }
 }