コード例 #1
0
ファイル: UsernameIsUnique.php プロジェクト: alle/cribbb
 /**
  * Check to see if the specification is satisfied
  *
  * @param Username $username
  * @return bool
  */
 public function isSatisfiedBy(Username $username)
 {
     if (!$this->repository->userOfUsername($username)) {
         return true;
     }
     return false;
 }
コード例 #2
0
 /**
  * Bind data to the view.
  *
  * @param  View  $view
  * @return void
  */
 public function compose(View $view)
 {
     if (!Cache::get('recent_posts')) {
         Cache::put('recent_posts', $this->posts->getAll('published', null, 'published_at', 'desc', 5), 10);
     }
     $view->with('recent_posts', Cache::get('recent_posts'));
 }
コード例 #3
0
 public function handleSave(Form $form)
 {
     $values = $form->values;
     if ($values['file']->isOk()) {
         if ($values['cleanout']) {
             foreach ($this->userRepository->findAll() as $user) {
                 $this->userRepository->delete($user);
             }
         }
         /** @var FileUpload $file */
         $file = $values['file'];
         $data = file_get_contents($file->getTemporaryFile());
         foreach (explode("\n", $data) as $row) {
             if (!$row) {
                 continue;
             }
             $items = explode(',', $row);
             if (!count($items)) {
                 continue;
             }
             try {
                 $user = new UserEntity(trim($items[0]));
             } catch (InvalidArgumentException $e) {
                 $form->addError($e->getMessage());
             }
             $this->userRepository->save($user);
         }
     }
 }
コード例 #4
0
ファイル: EmailIsUnique.php プロジェクト: alle/cribbb
 /**
  * Check to see if the specification is satisfied
  *
  * @param Email $email
  * @return bool
  */
 public function isSatisfiedBy(Email $email)
 {
     if (!$this->repository->userOfEmail($email)) {
         return true;
     }
     return false;
 }
コード例 #5
0
 /** @test */
 public function it_unfollows_another_user()
 {
     $users = TestDummy::times(2)->create('Larabook\\Users\\User');
     $this->repo->follow($users[1]->id, $users[0]);
     $this->repo->unfollow($users[1]->id, $users[0]);
     $this->tester->dontSeeRecord('follows', ['follower_id' => $users[0]->id, 'followed_id' => $users[1]->id]);
 }
コード例 #6
0
 /**
  * UnFollow user
  *
  * @param $input
  * @return mixed
  */
 public function unFollowUser($input)
 {
     $user = $this->userRepo->findById($input['user_id']);
     $userToUnFollow = $this->userRepo->findById($input['userIdToUnFollow']);
     $this->albumRepo->unShareAllAlbums($user, $userToUnFollow);
     return $this->userRepo->unFollow($input['userIdToUnFollow'], $user);
 }
コード例 #7
0
ファイル: UserController.php プロジェクト: Doanlmit/pickleweb
 /**
  * GET /account(/:name).
  *
  * @param null|string $name
  */
 public function viewAccountAction($name = null)
 {
     $redis = $this->app->container->get('redis.client');
     $userRepository = new UserRepository($redis);
     $user = $userRepository->find($name);
     $jsonPath = $this->app->config('json_path') . 'users/github/' . $name . '.json';
     $this->app->notFoundIf(file_exists($jsonPath) === false)->redirectUnless($name, '/profile')->render('account.html', ['account' => $user]);
 }
コード例 #8
0
 private function UpdateProfile(User $user)
 {
     $user->ChangeEmailPreference(new ReservationApprovedEvent(), $this->page->GetApproved());
     $user->ChangeEmailPreference(new ReservationCreatedEvent(), $this->page->GetCreated());
     $user->ChangeEmailPreference(new ReservationUpdatedEvent(), $this->page->GetUpdated());
     $user->ChangeEmailPreference(new ReservationDeletedEvent(), $this->page->GetDeleted());
     $this->userRepository->Update($user);
 }
コード例 #9
0
 /** @test */
 public function should_register_new_user()
 {
     $this->repository->shouldReceive('userOfEmail')->once()->andReturn(null);
     $this->repository->shouldReceive('userOfUsername')->once()->andReturn(null);
     $this->repository->shouldReceive('nextIdentity')->once()->andReturn(UserId::generate());
     $this->repository->shouldReceive('add')->once();
     $user = $this->service->register('*****@*****.**', 'username', 'password');
     $this->assertInstanceOf('Cribbb\\Domain\\Model\\Identity\\User', $user);
 }
コード例 #10
0
ファイル: JoinGroupTest.php プロジェクト: kfuchs/cribbb
 /** @test */
 public function should_allow_user_to_join_the_group()
 {
     $user = m::mock('Cribbb\\Domain\\Model\\Identity\\User');
     $group = m::mock('Cribbb\\Domain\\Model\\Groups\\Group');
     $group->shouldReceive('addMember')->once();
     $this->users->shouldReceive('userById')->once()->andReturn($user);
     $this->groups->shouldReceive('groupById')->once()->andReturn($group);
     $group = $this->service->join('7c5e8127-3f77-496c-9bb4-5cb092969d89', 'a3d9e532-0ea8-4572-8e83-119fc49e4c6f');
     $this->assertInstanceOf('Cribbb\\Domain\\Model\\Groups\\Group', $group);
 }
コード例 #11
0
ファイル: Authenticator.php プロジェクト: martinmayer/notejam
 /**
  * Using the given email finds the user and verifies it's password.
  * If the user is not fund or if the password is wrong, it throws.
  *
  * @param array $credentials
  * @throws AuthenticationException
  * @return User|NULL
  */
 public function authenticate(array $credentials)
 {
     list($username, $password) = $credentials;
     if (!($user = $this->userRepository->findOneBy(['email' => $username]))) {
         throw new AuthenticationException("User '{$username}' not found.", self::IDENTITY_NOT_FOUND);
     } elseif (!$user->verifyPassword($password)) {
         throw new AuthenticationException('Invalid password.', self::INVALID_CREDENTIAL);
     }
     return $user;
 }
コード例 #12
0
 public static function ChangePassword($oldPassword, $newPassword)
 {
     $userRepository = new UserRepository();
     $user = $userRepository->LoadWhere("Id = " . self::$userId)[0];
     if ($user["Password"] == self::Encode($oldPassword)) {
         $userRepository->UpdateWhere("Id = " . self::$userId, ["Password" => self::Encode($newPassword)]);
         return true;
     } else {
         return false;
     }
 }
コード例 #13
0
ファイル: LoggedUser.php プロジェクト: Tomeno/lulcobang
 /**
  * log the user - if not exists register him/her and then log the user
  *
  * @return	void
  */
 public static function userLogin()
 {
     $errors = array();
     $hash = addslashes(Utils::get('hash'));
     if ($hash) {
         $userRepository = new UserRepository();
         $user = $userRepository->getOneByHash($hash);
     } else {
         if (Utils::post('username') != '') {
             $username = addslashes(Utils::post('username'));
             if (!ctype_alnum($username)) {
                 $errors['username'] = '******';
                 // TODO localize
             }
         } else {
             $errors['username'] = '******';
             // TODO localize
         }
         if (Utils::post('password') != '') {
             $password = md5(addslashes(Utils::post('password')));
         } else {
             $errors['password'] = '******';
             // TODO localize
         }
         if (empty($errors)) {
             $userRepository = new UserRepository();
             $userExist = $userRepository->getOneByUsername($username);
             if ($userExist === NULL) {
                 $colorRepository = new ColorRepository();
                 $count = $colorRepository->getCountAll();
                 $rand = rand(1, $count);
                 $params = array('username' => $username, 'password' => $password, 'color' => $rand);
                 $user = new User($params);
                 $user = $user->save(TRUE);
             } elseif ($userExist['password'] != $password) {
                 $errors['password'] = '******';
             } else {
                 $user = $userExist;
             }
         }
     }
     if ($user && empty($errors)) {
         // TODO po prihlaseni treba nejako zmazat v memcachi query, ktora vybera usera podla cookie_value
         // lebo teraz to stale vracia vysledok z memcache -> ked sa prihlasim v dvoch browsroch, v obidvoch to funguje
         // neodhlasi ma z toho prveho
         $cookieValue = md5(time() . $user['id'] . $user['username']);
         DB::update(DB_PREFIX . 'user', array('cookie_value' => $cookieValue), 'id = ' . $user['id']);
         $expire = Utils::post('remember') == 1 ? strtotime('+1 year') : 0;
         setcookie(self::$cookieName, $cookieValue, $expire, '/');
         return TRUE;
     } else {
         return $errors;
     }
 }
コード例 #14
0
ファイル: ReminderServiceTest.php プロジェクト: kfuchs/cribbb
 /** @test */
 public function should_reset_password_and_return_user()
 {
     $reminder = new Reminder($this->fixture['id'], $this->fixture['email'], $this->fixture['code']);
     $this->reminders->shouldReceive('findReminderByEmailAndCode')->andReturn($reminder);
     $this->users->shouldReceive('userOfEmail')->andReturn($this->user);
     $this->hasher->shouldReceive('hash')->andReturn(new HashedPassword('qwerty123'));
     $this->users->shouldReceive('update');
     $this->reminders->shouldReceive('deleteReminderByCode');
     $user = $this->service->reset('*****@*****.**', 'qwerty123', 'abc123');
     $this->assertInstanceOf('Cribbb\\Domain\\Model\\Identity\\User', $user);
 }
コード例 #15
0
 /** @test */
 public function should_register_new_user()
 {
     $this->repository->shouldReceive('userOfEmail')->andReturn(null);
     $this->repository->shouldReceive('userOfUsername')->andReturn(null);
     $this->repository->shouldReceive('nextIdentity')->andReturn($this->uuid);
     $this->hashing->shouldReceive('hash')->andReturn($this->password);
     $this->repository->shouldReceive('add');
     $this->dispatcher->shouldReceive('dispatch');
     $user = $this->service->registerUser('*****@*****.**', 'username', 'password');
     $this->assertInstanceOf('Cribbb\\Domain\\Model\\Identity\\User', $user);
 }
コード例 #16
0
ファイル: NewPostTest.php プロジェクト: kfuchs/cribbb
 /** @test */
 public function should_create_new_post()
 {
     $user = m::mock('Cribbb\\Domain\\Model\\Identity\\User');
     $thread = m::mock('Cribbb\\Domain\\Model\\Discussion\\Thread');
     $post = m::mock('Cribbb\\Domain\\Model\\Discussion\\Post');
     $this->users->shouldReceive('userById')->once()->andReturn($user);
     $this->threads->shouldReceive('threadById')->once()->andReturn($thread);
     $thread->shouldReceive('createNewPost')->once()->andReturn($post);
     $this->posts->shouldReceive('add')->once();
     $post = $this->service->create('7c5e8127-3f77-496c-9bb4-5cb092969d89', 'a3d9e532-0ea8-4572-8e83-119fc49e4c6f', 'Hello World');
     $this->assertInstanceOf('Cribbb\\Domain\\Model\\Discussion\\Post', $post);
 }
コード例 #17
0
ファイル: NewThreadTest.php プロジェクト: kfuchs/cribbb
 /** @test */
 public function should_create_new_thread()
 {
     $user = m::mock('Cribbb\\Domain\\Model\\Identity\\User');
     $group = m::mock('Cribbb\\Domain\\Model\\Groups\\Group');
     $thread = m::mock('Cribbb\\Domain\\Model\\Discussion\\Thread');
     $this->users->shouldReceive('userById')->once()->andReturn($user);
     $this->groups->shouldReceive('groupById')->once()->andReturn($group);
     $group->shouldReceive('startNewThread')->once()->andReturn($thread);
     $this->threads->shouldReceive('add')->once();
     $thread = $this->service->create('7c5e8127-3f77-496c-9bb4-5cb092969d89', 'a3d9e532-0ea8-4572-8e83-119fc49e4c6f', 'Hello World');
     $this->assertInstanceOf('Cribbb\\Domain\\Model\\Discussion\\Thread', $thread);
 }
コード例 #18
0
 protected function startup()
 {
     parent::startup();
     if ($this->key) {
         if (($user = $this->userRepository->findOneBy(array('userKey' => $this->key))) === NULL) {
             throw new BadRequestException();
         }
         $this->userRepository->delete($user);
         $this->flashMessage('Byl jste odhlášen z newsletteru.', 'success');
         $this->redirect('this', array('key' => NULL));
     }
 }
コード例 #19
0
 /**
  * {@inheritdoc}
  */
 public function validate($review, Constraint $constraint)
 {
     $customer = $review->getAuthor();
     $token = $this->tokenStorage->getToken();
     if ($this->checkIfUserIsAuthenticated($token)) {
         if (null !== $customer && $token->getUser()->getCustomer()->getEmail() === $customer->getEmail()) {
             return;
         }
     }
     if (null !== $customer && null !== $this->userRepository->findOneByEmail($customer->getEmail())) {
         $this->context->addViolationAt('author', $constraint->message, [], null);
     }
 }
コード例 #20
0
 /** @test */
 public function should_reset_password_and_return_user()
 {
     $reminder = m::mock('Cribbb\\Domain\\Model\\Identity\\Reminder');
     $reminder->shouldReceive('isValid')->andReturn(true);
     $this->reminders->shouldReceive('findReminderByEmailAndCode')->andReturn($reminder);
     $user = m::mock('Cribbb\\Domain\\Model\\Identity\\User');
     $this->users->shouldReceive('userOfEmail')->once()->andReturn($user);
     $user->shouldReceive('resetPassword')->once();
     $this->users->shouldReceive('update')->once();
     $this->reminders->shouldReceive('deleteReminderByCode')->once();
     $user = $this->service->reset('*****@*****.**', 'password', 'abc123');
     $this->assertInstanceOf('Cribbb\\Domain\\Model\\Identity\\User', $user);
 }
コード例 #21
0
ファイル: HeaderComposer.php プロジェクト: duyluonglc/rakko
 /**
  * Bind data to the view.
  *
  * @param  View  $view
  * @return void
  */
 public function compose(View $view)
 {
     $locale = Session::get('locale');
     $header_id = $this->menu->getMenuID('header');
     $header = '';
     $header_items = $this->link->getLinks($header_id, $locale);
     //dd($header_items);
     if ($header_items->count()) {
         $menu = new MenuLink();
         $header_links = $this->link->getHTML($header_items, $locale);
     }
     //dd($header_links);
     $view->with('header_links', $header_links);
 }
コード例 #22
0
ファイル: UploadController.php プロジェクト: creolab/krustr
 /**
  * Fire the upload action
  *
  * @return Response
  */
 public function fire()
 {
     // Target path
     $tmpPath = Config::get('krustr::media.tmp_path');
     $tmpUrl = Config::get('krustr::media.tmp_url');
     // Custom location
     if ($custom = Input::get('custom')) {
         $tmpDir = 'tmp_' . str_replace("-", "_", $custom) . '_' . uniqid() . '/';
         $tmpPath .= $tmpDir;
         $tmpUrl .= $tmpDir;
     }
     // Run upload actions
     $reponse = $this->upload->fire(Input::file('file'), $tmpPath, array('tmp_url' => $tmpUrl));
     return Response::json($reponse);
 }
コード例 #23
0
 /**
  * @param boolean $hasCode
  * @param AuthenticateUserListener $listener
  * @return \Symfony\Component\HttpFoundation\RedirectResponse
  */
 public function execute($hasCode, $provider, AuthenticateUserListener $listener)
 {
     $this->provider = $provider;
     if (!$hasCode) {
         return $this->getAuthorizationFirst();
     }
     $result = $this->getSocialUser();
     if ($result['success']) {
         $user = $this->users->findByUsernameOrCreate($result['user'], $this->provider);
         $this->auth->login($user, true);
         return $listener->userHasLoggedIn($user);
     } else {
         return $listener->userLoggedInFailed($result);
     }
 }
コード例 #24
0
ファイル: Authenticator.php プロジェクト: joseki/sandbox
 /**
  * @param array $credentials
  * @return UserTable|Nette\Security\IIdentity
  * @throws \Nette\Security\AuthenticationException
  */
 public function authenticate(array $credentials)
 {
     list($username, $password) = $credentials;
     $query = $this->userRepository->createQuery();
     $query->where('@login', $username);
     try {
         $user = $this->userRepository->findOneBy($query);
     } catch (NotFoundException $e) {
         throw new Nette\Security\AuthenticationException('The username is incorrect.', self::IDENTITY_NOT_FOUND);
     }
     if (!$user->isPasswordValid($password)) {
         throw new Nette\Security\AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL);
     }
     return $user;
 }
コード例 #25
0
 public function handleExport()
 {
     $ret = array();
     foreach ($this->repository->findAll() as $user) {
         $ret[] = array($user->email, $user->userKey);
     }
     $out = "";
     foreach ($ret as $arr) {
         $out .= implode(',', $arr) . "\n";
     }
     header('Content-Type: application/csv, utf-8');
     header('Content-Disposition: attachment;filename="users.csv"');
     header('Cache-Control: max-age=0');
     $this->presenter->sendResponse(new TextResponse($out));
 }
コード例 #26
0
 public function __construct()
 {
     parent::__construct();
     $this->create_guest_account = function () {
         return UserRepository::createWithRoles(['UserID' => 1, 'Name' => 'Anonymous', 'Password' => str_random(64), 'HashMethod' => 'random'], [RoleRepository::member()]);
     };
 }
コード例 #27
0
 public function testGetsAllUsers()
 {
     $users = array(new UserDto(1, 'f', 'l', 'e'));
     $this->userRepo->expects($this->once())->method('GetAll')->will($this->returnValue($users));
     $this->page->expects($this->once())->method('SetJsonResponse')->with($this->equalTo($users));
     $this->presenter->ProcessDataRequest('all');
 }
コード例 #28
0
 public function ShowUserAttributes()
 {
     // User attributes on Dashboard, Added by Burak C.
     $userId = ServiceLocator::GetServer()->GetUserSession()->UserId;
     $userRepository = new UserRepository();
     $this->user = $userRepository->LoadById($userId);
     $attributeService = new AttributeService(new AttributeRepository());
     $attributes = $attributeService->GetByCategory(CustomAttributeCategory::USER);
     $reservationViewRepository = new ReservationViewRepository();
     $startDate = Date::Now();
     $endDate = $startDate->AddDays(30);
     $reservations = $reservationViewRepository->GetReservationList($startDate, $endDate, $userId, ReservationUserLevel::INVITEE);
     $this->_page->Set("invitations", $reservations);
     $this->_page->Set("user", $this->user);
     $this->_page->Set("attributes", $attributes);
 }
コード例 #29
0
ファイル: ForgotPwdPresenter.php プロジェクト: hugutux/booked
 public function SendRandomPassword()
 {
     $emailAddress = $this->_page->GetEmailAddress();
     Log::Debug('Password reset request for email address %s requested from REMOTE_ADDR: %s REMOTE_HOST: %s', $emailAddress, $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_HOST']);
     $temporaryPassword = Password::GenerateRandom();
     $passwordEncryption = new PasswordEncryption();
     $salt = $passwordEncryption->Salt();
     $encrypted = $passwordEncryption->Encrypt($temporaryPassword, $salt);
     $userRepository = new UserRepository();
     $user = $userRepository->FindByEmail($emailAddress);
     if ($user != null) {
         $user->ChangePassword($encrypted, $salt);
         $userRepository->Update($user);
         $emailMessage = new ForgotPasswordEmail($user, $temporaryPassword);
         ServiceLocator::GetEmailService()->Send($emailMessage);
     }
 }
コード例 #30
0
 /**
  * @param int $userId
  * @return User|void
  */
 public function LoadById($userId)
 {
     $user = parent::LoadById($userId);
     $me = parent::LoadById($this->userSession->UserId);
     if ($userId == $this->userSession->UserId || $me->IsAdminFor($user)) {
         return $user;
     }
     return User::Null();
 }