protected function buildIdentity($userID)
 {
     $userData = $this->usersModel->get($userID);
     if (!$userData) {
         throw new \Nette\Security\AuthenticationException('Neexistují odpovídající data o uživateli.', self::FAILURE);
     }
     unset($userData->id);
     $membershipData = $this->membershipModel->query("SELECT `group`.* FROM membership JOIN `group` ON `group`.id = membership.group_id WHERE membership.user_id = " . $userID)->fetchAll();
     $roles = array();
     foreach ($membershipData as $record) {
         $roles[] = $record->role_name;
     }
     return new \Nette\Security\Identity($userID, $roles, $userData);
 }
 public function registerAction(Request $request, Response $response, $args)
 {
     $data = $request->getParsedBody();
     $username = $data['name'];
     $email = $data['email'];
     $pass = $data['pass'];
     $hash = new Hash();
     $res = true;
     if (!Validate::isValidUsername($username)) {
         $res = false;
         $this->flash->addMessage('error', 'ERROR-NAME !');
     }
     if (!Validate::isValidEmail($email)) {
         $res = false;
         $this->flash->addMessage('error', 'ERROR-EMAIL !');
     }
     if (!Validate::isValidPass($pass)) {
         $res = false;
         $this->flash->addMessage('error', 'ERROR-PASSWORD !');
     }
     $listUser = $this->em->getRepository('App\\Model\\Users')->findOneBy(['username' => $data['name']]);
     $listEmail = $this->em->getRepository('App\\Model\\Users')->findOneBy(['email' => $data['email']]);
     if ($listUser) {
         $res = false;
         $this->flash->addMessage('error', 'NAME DONE !');
     }
     if ($listEmail) {
         $res = false;
         $this->flash->addMessage('error', 'EMAIL HAVE !');
     }
     if ($res) {
         $user = new Users();
         $data['pass'] = $hash->create($data['pass'], SALT);
         $user->setUsername($data['name']);
         $user->setEmail($data['email']);
         $user->setPassword($data['pass']);
         $user->getCreatedAt(new \DateTime());
         try {
             $this->em->persist($user);
             $this->em->flush();
         } catch (\Exception $e) {
             $this->flash->addMessage('error', $e->getMessage());
             return $response->withStatus(301)->withHeader('Location', '/login');
         }
         $this->flash->addMessage('success', "SUCCESS !");
     }
     return $response->withStatus(301)->withHeader('Location', '/login');
 }
Exemple #3
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     DB::table('users')->delete();
     Users::create(['number' => '111', 'password' => Hash::make('111')]);
     Users::create(['number' => '222', 'password' => Hash::make('222')]);
     Users::create(['number' => '333', 'password' => Hash::make('333')]);
 }
Exemple #4
0
 /**
  * 更新用户信息
  * @return [type] [description]
  */
 public function updateuserinfo()
 {
     // 1就要保存空图片
     $imageFlag = $_POST['imageFlag'];
     $userkey = Session::get('userkey');
     $headimg = "nochange";
     $introduction = $_POST['introduction'];
     if (isset($_FILES['imagepic'])) {
         $imagepic = $_FILES['imagepic'];
     } else {
         $imagepic = "";
     }
     $sex = $_POST['sex'];
     $telphone = $_POST['telphone'];
     if ("" != $imagepic) {
         $size = $imagepic['size'];
         // 小于1m
         if ($size > 1048576) {
             // 返回
             return "toobig";
         }
         // 将头像转存
         $headimg = saveImage::zhuancun($imagepic);
     } else {
         // 为1的话说明只用默认图
         $headimg = "";
     }
     // 存入数据库
     $res = Users::addUserInfo($userkey, $introduction, $headimg, $sex, $telphone);
     if ($res == "1") {
         return "success";
     } else {
         return "faild";
     }
 }
 public function zajemceFormSucceeded($button)
 {
     $values = $button->getForm()->getValues(true);
     $id = (int) $this->getParameter('id');
     if ($id) {
         try {
             $new_user = $this->users->update($id, $values);
             if ($new_user) {
                 $this->flashMessage('Účet zájemce byl upraven.');
             }
         } catch (\PDOException $e) {
             if ($e->getCode() == 23000) {
                 $this->flashMessage('Zájemce s tímto aliasem už je zaregistrován, zvolte prosím jiný.');
             } else {
                 throw $e;
             }
         }
     } else {
         // registrace noveho zajemce
         try {
             $new_user = $this->users->register($values);
             if ($new_user) {
                 $this->flashMessage('Účet zájemce byl vytvořen. Nyní se může přihlásit.');
             }
         } catch (\PDOException $e) {
             if ($e->getCode() == 23000) {
                 $this->flashMessage('Zájemce s tímto aliasem už je zaregistrován, zvolte prosím jiný.');
             } else {
                 throw $e;
             }
         }
     }
     $this->redirect('zajemci');
 }
Exemple #6
0
 public function settingsFormSucceeded($form, $values)
 {
     $id = $this->user->id;
     $data = $this->model->getSelection()->get($id);
     if ($data) {
         try {
             unset($values->user_id);
             //$this->model->updateSettings($id,$values);
             //$this->user->getIdentity()->settings = $values;
             $this->flashMessage("Nastavení bylo uloženo.", "success");
         } catch (Exception $e) {
             $this->flashMessage("Uložení nastavení se nepodařilo.", "danger");
         }
     } else {
         $this->flashMessage("Takový uživatel neexistuje.", "warning");
     }
     $this->redirect("default");
 }
Exemple #7
0
 protected function buildIdentity($userID)
 {
     $userData = $this->usersModel->get($userID);
     if (!$userData) {
         throw new \Nette\Security\AuthenticationException('Neexistují odpovídající data o uživateli.', self::FAILURE);
     }
     unset($userData->id);
     $membershipData = $this->membershipModel->query("SELECT `group`.* FROM membership JOIN `group` ON `group`.id = membership.group_id WHERE membership.user_id = " . $userID)->fetchAll();
     $roles = array();
     foreach ($membershipData as $record) {
         $roles[] = $record->role_name;
     }
     $settings = $this->usersModel->query("SELECT * FROM `user_setting` WHERE user_id = {$userID}")->fetch();
     if (!$settings) {
         $this->usersModel->query("INSERT INTO `user_setting` (`user_id`) VALUES ({$userID})");
         $settings = $this->usersModel->query("SELECT * FROM `user_setting` WHERE user_id = {$userID}")->fetch();
     }
     $settings = $settings->toArray();
     unset($settings["user_id"]);
     $userData["settings"] = $settings;
     return new \Nette\Security\Identity($userID, $roles, $userData);
 }
 public function renderDefault()
 {
     $this->template->subjects = $this->model->query("SELECT count(*) as total FROM sch_subject")->fetch();
     $this->template->groups = $this->model->query("SELECT count(*) as total FROM `sch_group`")->fetch();
     $this->template->teachers = $this->model->query("SELECT count(*) as total FROM `sch_teacher`")->fetch();
     $this->template->students = $this->model->query("SELECT count(*) as total FROM `sch_student`")->fetch();
     $this->template->classes = $this->model->query("SELECT count(*) as total FROM `sch_class`")->fetch();
 }
 /**
  * 查询文章的详情页面
  * @return [type] [description]
  */
 public function articleDetails()
 {
     $nowkey = $_GET['now'];
     // 请求来源的ip
     $fromIp = $_SERVER['REMOTE_ADDR'];
     // 将ip存入session,12min后失效,如果1min内连续访问那么不会增加访问量
     if (!Session::has($fromIp)) {
         $arr = array();
         array_push($arr, $nowkey);
         Session::put($fromIp, $arr);
         Session::save();
         // 访问次数增加1
         $res = Articles::updateArticleSeeTimes($nowkey);
     } else {
         // 如果这次访问的和上次不一样那么可以加
         $nowarr = Session::get($fromIp);
         if (!in_array($nowkey, $nowarr)) {
             // 访问次数增加1
             $res = Articles::updateArticleSeeTimes($nowkey);
             // 加入这次访问的帖子key
             array_push($nowarr, $nowkey);
             // 重新转存当前的用户的访问记录
             Session::put($fromIp, $nowarr);
             Session::save();
         }
     }
     // 返回的key
     $result = array();
     $userkey = Session::get('userkey');
     if ("" != $userkey) {
         // 查询当前用户的信息
         $nowuserInfo = Users::queryUserAffic($userkey);
         $result['nowuserInfo'] = $nowuserInfo;
     }
     // 默认第一页,展示5条
     $fromPage = 1 - 1;
     $evepage = 5;
     // 查询帖子详情
     $res = Articles::getArticleDetails($nowkey);
     // 分页查询
     $replyres = Articles::queryReplyList($nowkey, $fromPage, $evepage);
     // 查询总条数
     $totalCount = Articles::queryOneAticleReplyCount($nowkey);
     $result['res'] = $res;
     $result['replyres'] = $replyres;
     $result['totalCount'] = $totalCount;
     $result['articlekey'] = $nowkey;
     return view("details/articledetails", $result);
 }
 public function actionId($id)
 {
     $record = $this->model->get($id);
     if ($record) {
         if ($record->status == 0 && ($this->user->isInRole("administrator") || $this->user->id == $record->created_by)) {
             $this->template->editable = true;
         } else {
             $this->template->editable = false;
         }
         $this->template->work = $record;
         $this->template->statuses = $this->statuses;
         $this->template->maker = $this->userModel->get($record->created_by);
     } else {
         $this->flashMessage("Takové zadání práce neexistuje.", "danger");
         $this->redirect("default");
     }
 }
Exemple #11
0
 public function recovery2FormSucceeded($form, $values)
 {
     $userData = $this->model->getBy(array("email" => $values->username));
     if (!$userData) {
         $this->flashMessage("Neznámé uživatelské jméno.", "danger");
         $this->redirect("password");
     } else {
         try {
             $id = $userData->id;
             $this->userModel->setPassword($id, $values->password);
             $this->userModel->removeToken($id);
             $this->flashMessage("Změna hesla proběhla úspěšně.", "success");
         } catch (Exception $e) {
             $this->flashMessage("Při nastavování hesla došlo k chybě.", "danger");
         }
     }
     $this->redirect("in");
 }
 public function actionEdit($id)
 {
     $record = $this->model->get($id);
     $this->title = "Editace skupiny " . $record["name"];
     if ($record) {
         if (!$this->user->isInRole("administrator") && !($record->user_id == $this->user->id)) {
             $this->flashMessage("K editaci skupiny " . $record->name . " nejste oprávněn.", "danger");
             $this->redirect("id", $id);
         } else {
             $this->template->id = $id;
             $form = $this["formEdit"];
             if ($record->user_id) {
                 $form["user_id"]->setItems($this->userModel->activeUsersAsArray(array($record->user_id)));
             }
             $form->setDefaults($record);
         }
     } else {
         $this->flashMessage("Skupina " . $id . " neexistuje.", "danger");
         $this->redirect("default");
     }
 }
Exemple #13
0
 public function facebookRegistrationFormSucceeded($form, $values)
 {
     $fbUserId = $values->id;
     unset($values->id);
     try {
         if ($this->facebookUserModel->exists($fbUserId)) {
             $this->flashMessage("Uživatel s tímto FacebookID již je v systému zaregistrován.", "danger");
             $this->redirect("in");
         } else {
             $id = $this->model->insert($values);
             $this->model->update($id, array("enabled" => 1, "active" => 1));
             $this->flashMessage("Uživatel byl úspěšně zaregistrován.", "success");
             $this->facebookUserModel->add(array("user_id" => $id, "facebook_id" => $fbUserId, "username" => $values->firstname . " " . $values->lastname, "email" => $values->email));
             $this->facebookUserModel->authenticate(array($this->facebook->getUser()));
             $this->facebookUserModel->updateToken($this->facebook->getUser(), $this->facebook->getAccessToken());
         }
     } catch (Exception $e) {
         $this->flashMessage("Registrace uživatele se nepodařila.", "danger");
     }
     $this->redirect(":Front:Homepage:default");
 }
 public function actionImportStudents()
 {
     $result = $this->model->importStudents();
     $messages = $result->messages;
     $data = $result->data;
     $reports = array();
     $this->studentsModel->invalidate();
     $classConversionTable = array();
     $classData = $this->classesModel->query("SELECT id, bakalari_code FROM sch_class")->fetchAll();
     foreach ($classData as $classRecord) {
         $classConversionTable[$classRecord["bakalari_code"]] = $classRecord["id"];
     }
     foreach ($data as $record) {
         $id = $this->studentsModel->existsBakalari($record->bakalari_code);
         if (!$id) {
             $newid = $this->usersModel->insert(array("firstname" => $record->firstname, "lastname" => $record->lastname, "title" => $record->title, "title_after" => $record->title_after, "gender" => $record->gender, "birthdate" => $record->birthdate, "phone" => $record->mobile_phone, "personal_identification_number" => $record->personal_identification_number, "email" => $record->email, "enabled" => 1, "active" => 1));
             $this->studentsModel->dumbInsert(array("user_id" => $newid, "catalog_number" => $record->catalog_number, "class_id" => $classConversionTable[$record->class_code], "network_login" => $record->login, "bakalari_code" => $record->bakalari_code));
             $this->studentsModel->query("INSERT INTO login_imap VALUES (\"{$newid}\",\"{$record->login}\")");
             $reports[] = "ADD: Student " . $record->firstname . " " . $record->lastname . " byl přidán. ({$newid})";
         } else {
             $recid = $id->user_id;
             $this->usersModel->update($recid, array("firstname" => $record->firstname, "lastname" => $record->lastname, "title" => $record->title, "title_after" => $record->title_after, "gender" => $record->gender, "birthdate" => $record->birthdate, "phone" => $record->mobile_phone, "personal_identification_number" => $record->personal_identification_number, "email" => $record->email, "enabled" => 1, "active" => 1));
             $this->studentsModel->update($recid, array("catalog_number" => $record->catalog_number, "class_id" => $classConversionTable[$record->class_code], "network_login" => $record->login, "bakalari_code" => $record->bakalari_code, "invalidated" => 0));
             $this->studentsModel->query("INSERT INTO login_imap (user_id,username) VALUES (\"{$recid}\",\"{$record->login}\") ON DUPLICATE KEY UPDATE username = \"{$record->login}\"");
             $reports[] = "UPDATE: Student " . $record->firstname . " " . $record->lastname . " byl aktualizován. ({$recid})";
         }
     }
     $this->studentsModel->query("DELETE FROM login_local WHERE user_id IN(SELECT user_id FROM sch_student WHERE invalidated = 1)");
     $studentsGroupId = $this->membershipModel->getIdfromRole("student");
     if ($studentsGroupId) {
         $this->membershipModel->emptyGroup($studentsGroupId);
         $reports[] = "Skupina {$studentsGroupId} byla vyprázdněna.";
         $this->membershipModel->query("INSERT INTO membership (`user_id`,`group_id`) SELECT user_id,{$studentsGroupId} FROM `sch_student`");
         $reports[] = "Skupina {$studentsGroupId} byla naplněna aktuálními studenty.";
     }
     $this->studentsModel->removeUnused();
     $this->template->reports = $reports;
     $this->template->messages = $messages;
     $this->setView("result");
 }
Exemple #15
0
 public function passwordFormSucceeded($form, $values)
 {
     $id = $this->user->id;
     unset($values->id);
     $data = $this->model->get($id);
     if ($data) {
         if ($data->email) {
             try {
                 $this->localUserModel->add($id, $values->password);
                 $this->flashMessage("Heslo bylo nastaveno.", "success");
                 $this->redirect("default");
             } catch (Exception $e) {
                 $this->flashMessage("Nastavení hesla se nepodařilo.", "danger");
             }
         } else {
             $this->flashMessage("Nemáte nastavenou emailovou adresu. Není ji tak možné ho použít jako přihlašovací jméno.", "danger");
         }
     } else {
         $this->flashMessage("Takový účet neexistuje.", "warning");
     }
     $this->redirect("default");
 }
Exemple #16
0
 public function addMembershipFormSucceeded($form, $values)
 {
     $data = $this->model->get($values->id);
     if ($data && $this->user->isInRole("administrator")) {
         try {
             $this->membershipModel->in($values->id, $values->selection);
         } catch (Exception $e) {
             $this->flashMessage("Přidání do skupiny se nepodařilo.", "danger");
         }
     } else {
         $this->flashMessage("Nemáte oprávnění tímto způsobem přidávat někoho do skupiny.", "danger");
     }
     if (!$this->isAjax()) {
         $this->redirect('this');
     } else {
         $this->template->membership = $this->membershipModel->userIsMember($values->id);
         $this->invalidateControl('membershipList');
         $this->invalidateControl('flashMessages');
         $form["selection"]->setItems($this->membershipModel->userIsNotMemberOfGroupsAsArray($values->id));
         $form["selection"]->setValue(null);
         $this->invalidateControl('addMembershipForm');
     }
 }
Exemple #17
0
 /**
  * 点击登录,校验是否登陆成功 
  */
 public function checkLogin()
 {
     $username = $_POST['email'];
     $password = $_POST['password'];
     // $results = \DB::select('select * from users where userid = :id', ['id' => 1]);
     // $users = \DB::table('users')->get();
     $users = Users::checkUser($username, $password);
     $len = count($users);
     if ($len > 0) {
         foreach ($users as $user) {
             $username = $user->username;
             $userkey = $user->userkey;
             // 将用户的信息存入
             Session::put('username', $username);
             Session::put('userkey', $userkey);
         }
         Session::save();
         // 检测是否有前面跳转过来的页面
         if ("" != Session::get("preurl")) {
             $preurl = Session::get('preurl');
             // print_r($preurl);
             Session::forget("preurl");
             return Redirect::to($preurl);
         } else {
             return Redirect::to("indexmain");
         }
     } else {
         if ($len == 0) {
             // 密码或者用户名错误
             return Redirect::to('login')->with('loginError', "loginError");
         } else {
             // 返回错误
             return Redirect::to('login')->with('error', "error");
         }
     }
 }
Exemple #18
0
 public static function person()
 {
     return Model\Users::find(session('partner')['users_id']);
 }
Exemple #19
0
 /**
  * 用户名检测唯一性
  * @param  [type] $username [description]
  * @return [type]           [description]
  */
 public static function checkUserName($username)
 {
     $userList = Users::whereRaw('username = ? ', [$username])->count();
     return $userList;
 }
 /**
  * Display all users
  */
 public function indexAction()
 {
     $this->view->setVar('users', Users::find());
 }
Exemple #21
0
 public function read($id = null)
 {
     $datas = ['directors' => usersdb::find($id)];
     return view('Pages/Users/read', $datas);
 }
 /**
  * 查询用户名是否已经注册
  */
 public function checkUserName()
 {
     $username = $_POST['username'];
     $userSize = Users::checkUserName($username);
     return $userSize;
 }
 public function renderDefault()
 {
     $this->template->users = $this->model->query("SELECT count(*) as total FROM user")->fetch();
     $this->template->groups = $this->model->query("SELECT count(*) as total FROM `group`")->fetch();
     $this->template->files = $this->model->query("SELECT count(*) as total FROM `file`")->fetch();
 }