示例#1
0
 public function getLoginUrl($payload, User $user)
 {
     $params = ['nonce' => $this->getNonce($payload), 'email' => $user->email, 'external_id' => $user->getSsoId(), 'name' => $user->name];
     $response = base64_encode(http_build_query($params));
     $url = rtrim($this->redirect, '?') . '?';
     return $url . http_build_query(['sso' => $response, 'sig' => $this->getSignature($response)]);
 }
 /**
  * @subscribe
  * @param User $user
  * @param ScalarExercise $exercise
  */
 public function onCorrectAnswer(User $user, ScalarExercise $exercise)
 {
     $blueprint = $exercise->getBlueprint();
     // TODO award after percentage on last N answers reaches X %
     if ($user->getBadges($this->getKey())->where('blueprint_id = ?', $blueprint->id)->count() !== 0) {
         // already awarded for this blueprint
         return;
     }
     $this->awardTo($user, function (Badge $badge, User $user) use($blueprint) {
         return new Bridges\ExerciseMastery($badge, $user, $blueprint);
     });
 }
 /**
  * @subscribe
  * @param User $user
  */
 public function onLogin(User $user)
 {
     if ($user->getBadges($this->getKey())->count() !== 0) {
         // already awarded
         return;
     }
     if ($user->createdAt < DateTime::from('-1 week')) {
         $this->awardTo($user, function (Badge $badge, User $user) {
             return new Bridges\UserOldWeek($badge, $user);
         });
     }
 }
示例#4
0
 protected function fillUser(User $u)
 {
     $u->gender = $this->faker->randomElement(Gender::getGenders());
     $u->setNominativeAndVocative($this->faker->firstName($u->gender));
     $u->familyName = $this->faker->lastName($u->gender);
     $u->name = "{$u->nominative} {$u->familyName}";
     $u->email = $this->faker->email($u->nominative, $u->familyName);
 }