public function createInwicastUserIfNotExists(User $user, $token, Mediacenter $mediacenter)
 {
     $connection = $this->connectionFactory->createConnection($mediacenter->getDatabaseParameters());
     $qb = $connection->createQueryBuilder();
     $qb->select('usr.username, usr.token')->from('mdcr_inwicast_user_tokens', 'usr')->where('usr.username = :username')->andWhere('usr.tokenapp = :platform')->setParameter("username", $user->getUsername())->setParameter("platform", $this->platformName);
     $result = $qb->execute()->fetch();
     if (!$result) {
         //$qb_insert = $connection->createQueryBuilder();
         $sql = "INSERT INTO mdcr_inwicast_user_tokens" . " (`username`, `firstname`, `lastname`, `email`, `userrole`, `token`, `tokendate`, `tokenapp`)" . " VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
         $query = $connection->prepare($sql);
         $query->bindValue(1, $user->getUsername());
         $query->bindValue(2, $user->getFirstName());
         $query->bindValue(3, $user->getLastName());
         $query->bindValue(4, $user->getMail());
         $query->bindValue(5, $user->getPlatformRole()->getName());
         $query->bindValue(6, $token);
         $query->bindValue(7, date('Y-m-d H:i:s'));
         $query->bindValue(8, $this->platformName);
         $query->execute();
     } else {
         $qb_update = $connection->createQueryBuilder();
         $qb_update->update('mdcr_inwicast_user_tokens')->set('token', '?')->set('tokendate', '?')->set('tokenapp', '?')->where('username = ?')->setParameter(0, $token)->setParameter(1, date('Y-m-d H:i:s'))->setParameter(2, $this->platformName)->setParameter(3, $user->getUsername());
         $qb_update->execute();
     }
     return true;
 }
Example #2
0
 public function request($method, $uri, User $user = null, array $parameters = [])
 {
     if (!$this->client instanceof Client) {
         throw new \Exception('This method requires a client property of type ' . 'Symfony\\Component\\BrowserKit\\Client');
     }
     $server = $user ? ['PHP_AUTH_USER' => $user->getUsername(), 'PHP_AUTH_PW' => $user->getPlainPassword()] : [];
     return $this->client->request($method, $uri, $parameters, [], $server);
 }
 public function __construct(Cursus $cursus, User $user)
 {
     $details = [];
     $details['username'] = $user->getUsername();
     $details['firsName'] = $user->getFirstName();
     $details['lastName'] = $user->getLastName();
     $details['cursusId'] = $cursus->getId();
     $details['cursusTitle'] = $cursus->getTitle();
     $details['cursusCode'] = $cursus->getCode();
     parent::__construct(self::ACTION, $details, $user);
 }
Example #4
0
 /**
  * @param Workspace $workspace
  * @param User      $user
  *
  * @return User
  */
 public function workspaceUser(Workspace $workspace, User $user)
 {
     $role = new Role();
     $role->setName("ROLE_WS_{$workspace->getName()}_{$user->getUsername()}");
     $role->setTranslationKey($role->getName());
     $role->setWorkspace($workspace);
     $user->addRole($role);
     $this->om->persist($role);
     $this->om->persist($user);
     return $user;
 }
 public function __construct(CourseSession $session, User $user)
 {
     $course = $session->getCourse();
     $details = array();
     $details['username'] = $user->getUsername();
     $details['firsName'] = $user->getFirstName();
     $details['lastName'] = $user->getLastName();
     $details['sessionId'] = $session->getId();
     $details['sessionName'] = $session->getName();
     $details['sessionCreationDate'] = $session->getCreationDate()->format('d/m/Y H:i:s');
     $details['courseId'] = $course->getId();
     $details['courseTitle'] = $course->getTitle();
     $details['courseCode'] = $course->getCode();
     parent::__construct(self::ACTION, $details, $user);
 }
 public function __construct(SessionEvent $sessionEvent, User $user)
 {
     $session = $sessionEvent->getSession();
     $course = $session->getCourse();
     $details = [];
     $details['username'] = $user->getUsername();
     $details['firsName'] = $user->getFirstName();
     $details['lastName'] = $user->getLastName();
     $details['sessionEventId'] = $sessionEvent->getId();
     $details['sessionEventName'] = $sessionEvent->getName();
     $details['sessionId'] = $session->getId();
     $details['sessionName'] = $session->getName();
     $details['courseId'] = $course->getId();
     $details['courseTitle'] = $course->getTitle();
     $details['courseCode'] = $course->getCode();
     parent::__construct(self::ACTION, $details, $user);
 }
 function getBaseName(User $user)
 {
     $BaseName = $user->getUsername() . $user->getId() . "/";
     return $BaseName;
 }
Example #8
0
 /**
  * Returns user-type role of an user.
  *
  * @param User $user
  * @param boolean $executeQuery
  *
  * @return array[Role]|query
  */
 public function findUserRoleByUser(User $user, $executeQuery = true)
 {
     $username = $user->getUsername();
     $roleName = 'ROLE_USER_' . strtoupper($username);
     $dql = '
         SELECT r
         FROM Claroline\\CoreBundle\\Entity\\Role r
         WHERE r.type = :type
         AND r.name = :name
         AND r.translationKey = :key
     ';
     $query = $this->_em->createQuery($dql);
     $query->setParameter('type', Role::USER_ROLE);
     $query->setParameter('name', $roleName);
     $query->setParameter('key', $username);
     return $executeQuery ? $query->getOneOrNullResult() : $query;
 }
 /**
  * @EXT\Route(
  *     "user/{user}/infos/request",
  *     name="claro_user_infos_request",
  *     options = {"expose"=true}
  * )
  */
 public function userInfosRequestAction(User $user)
 {
     $datas = array('id' => $user->getId(), 'firstName' => $user->getFirstName(), 'lastName' => $user->getLastName(), 'username' => $user->getUsername(), 'mail' => $user->getMail(), 'phone' => $user->getPhone(), 'picture' => $user->getPicture());
     return new JsonResponse($datas, 200);
 }
 public function createRemoteUser(User $user)
 {
     $url = 'api/users.json';
     $tmppw = uniqid();
     $payload = array('profile_form_creation[username]' => $user->getUsername(), 'profile_form_creation[firstName]' => $user->getFirstName(), 'profile_form_creation[lastName]' => $user->getLastName(), 'profile_form_creation[mail]' => $user->getMail(), 'profile_form_creation[administrativeCode]' => $user->getUsername(), 'profile_form_creation[plainPassword][first]' => $tmppw, 'profile_form_creation[plainPassword][second]' => $tmppw);
     $serverOutput = $this->apiManager->url($this->targetFriend, $url, $payload, 'POST');
     $datas = json_decode($serverOutput, true);
     return $datas;
 }
Example #11
0
 public function initializePassword(User $user)
 {
     $user->setHashTime(time());
     $password = sha1(rand(1000, 10000) . $user->getUsername() . $user->getSalt());
     $user->setResetPasswordHash($password);
     $this->objectManager->persist($user);
     $this->objectManager->flush();
 }
 public function checkAccess(Message $message, User $user)
 {
     if ($message->getSenderUsername() === $user->getUsername()) {
         return true;
     }
     $userMessage = $this->messageManager->getOneUserMessageByUserAndMessage($user, $message);
     if (!is_null($userMessage)) {
         return true;
     }
     $receiverString = $message->getTo();
     $names = explode(';', $receiverString);
     $usernames = [];
     $groupNames = [];
     $workspaceCodes = [];
     foreach ($names as $name) {
         if (substr($name, 0, 1) === '{') {
             $groupNames[] = trim($name, '{}');
         } elseif (substr($name, 0, 1) === '[') {
             $workspaceCodes[] = trim($name, '[]');
         } else {
             $usernames[] = trim($name);
         }
     }
     if (in_array($user->getUsername(), $usernames)) {
         return true;
     }
     foreach ($user->getGroups() as $group) {
         if (in_array($group->getName(), $groupNames)) {
             return true;
         }
     }
     foreach ($this->workspaceManager->getWorkspacesByUser($user) as $workspace) {
         if (in_array($workspace->getCode(), $workspaceCodes)) {
             return true;
         }
     }
     throw new AccessDeniedException();
 }
Example #13
0
 public function importUser(User $user, Client $client = null)
 {
     $hasCreatedClient = false;
     if (!$client) {
         $host = $this->configHandler->getParameter('chat_xmpp_host');
         $client = $this->getClient($host);
         $hasCreatedClient = true;
     }
     $this->log("Adding chat user for {$user->getUsername()}");
     $this->createChatUser($user, $user->getUsername(), $user->getGuid());
     $register = new Register($this->configHandler->getParameter('chat_ssl'));
     $register->setUser($user);
     $client->send($register);
     if ($hasCreatedClient) {
         $client->disconnect();
     }
 }
Example #14
0
 /**
  * @param User $user
  *
  * @return bool
  */
 public function sendCreationMessage(User $user)
 {
     $locale = $user->getLocale();
     $content = $this->contentManager->getTranslatedContent(['type' => 'claro_mail_registration']);
     $displayedLocale = isset($content[$locale]) ? $locale : $this->ch->getParameter('locale_language');
     $body = $content[$displayedLocale]['content'];
     $subject = $content[$displayedLocale]['title'];
     $url = $this->router->generate('claro_security_validate_email', ['hash' => $user->getEmailValidationHash()], true);
     $validationLink = $this->translator->trans('email_validation_url_display', ['%url%' => $url], 'platform');
     $body = str_replace('%first_name%', $user->getFirstName(), $body);
     $body = str_replace('%last_name%', $user->getLastName(), $body);
     $body = str_replace('%username%', $user->getUsername(), $body);
     $body = str_replace('%password%', $user->getPlainPassword(), $body);
     $body = str_replace('%validation_mail%', $validationLink, $body);
     $subject = str_replace('%platform_name%', $this->ch->getParameter('name'), $subject);
     return $this->send($subject, $body, [$user], null, [], true);
 }
Example #15
0
 /**
  * @ApiDoc(
  *     description="Returns a user",
  *     views = {"user"}
  * )
  * @Get("/user/{user}/public", name="get_public_user", options={ "method_prefix" = false })
  */
 public function getPublicUserAction(User $user)
 {
     $settingsProfile = $this->facetManager->getVisiblePublicPreference();
     $publicUser = [];
     foreach ($settingsProfile as $property => $isViewable) {
         if ($isViewable || $user === $this->container->get('security.token_storage')->getToken()->getUser()) {
             switch ($property) {
                 case 'baseData':
                     $publicUser['lastName'] = $user->getLastName();
                     $publicUser['firstName'] = $user->getFirstName();
                     $publicUser['username'] = $user->getUsername();
                     $publicUser['picture'] = $user->getPicture();
                     $publicUser['description'] = $user->getAdministrativeCode();
                     break;
                 case 'email':
                     $publicUser['mail'] = $user->getMail();
                     break;
                 case 'phone':
                     $publicUser['phone'] = $user->getPhone();
                     break;
                 case 'sendMail':
                     $publicUser['mail'] = $user->getMail();
                     $publicUser['allowSendMail'] = true;
                     break;
                 case 'sendMessage':
                     $publicUser['allowSendMessage'] = true;
                     $publicUser['id'] = $user->getId();
                     break;
             }
         }
     }
     return $publicUser;
 }
 /**
  * @Route("/import/{format}/{previewId}", name="icap_portfolio_import_preview")
  *
  * @ParamConverter("loggedUser", options={"authenticatedUser" = true})
  * @Template()
  */
 public function importPreviewAction(Request $request, User $loggedUser, $format, $previewId)
 {
     $this->checkPortfolioToolAccess();
     $temporaryImportFilePathToSearch = sprintf('%s-*-%s.%s.import', strtolower($loggedUser->getUsername()), $previewId, $format);
     $finder = new Finder();
     $files = $finder->files()->in($this->container->get('claroline.config.platform_config_handler')->getParameter('tmp_dir'))->depth('0')->name($temporaryImportFilePathToSearch);
     $filesCount = $files->count();
     $errorMessage = null;
     if (0 === $filesCount) {
         $errorMessage = 'portfolio_import_error_import_file_not_found_message';
     } elseif (1 < $filesCount) {
         $errorMessage = 'portfolio_import_error_import_too_many_file_message';
     }
     if (null !== $errorMessage) {
         $this->getSessionFlashbag()->add('error', $this->getTranslator()->trans($errorMessage, [], 'icap_portfolio'));
         return $this->redirect($this->generateUrl('icap_portfolio_import', ['format' => $format]));
     }
     if ($request->isMethod('POST')) {
         try {
             foreach ($files as $file) {
                 $importManager = $this->getImportManager();
                 $importManager->setEntityManager($this->getEntityManager());
                 $portfolio = $importManager->doImport($file->getContents(), $loggedUser, $format);
             }
             if ($request->isXmlHttpRequest()) {
                 return new JsonResponse([]);
             } else {
                 $this->getSessionFlashbag()->add('success', $this->getTranslator()->trans('portfolio_import_success_message', [], 'icap_portfolio'));
                 return $this->redirect($this->generateUrl('icap_portfolio_index'));
             }
         } catch (\Exception $exception) {
             $this->getSessionFlashbag()->add('error', $this->getTranslator()->trans('portfolio_import_error_message', [], 'icap_portfolio'));
             return $this->redirect($this->generateUrl('icap_portfolio_import', ['format' => $format]));
         }
     }
     foreach ($files as $file) {
         $portfolio = $this->getImportManager()->simulateImport($file->getContents(), $loggedUser, $format);
     }
     return ['format' => $format, 'previewId' => $previewId, 'portfolio' => $portfolio];
 }
Example #17
0
 /**
  * @param User $user
  *
  * @return \Claroline\CoreBundle\Entity\Role
  */
 public function createUserRole(User $user)
 {
     $username = $user->getUsername();
     $roleName = 'ROLE_USER_' . strtoupper($username);
     $role = $this->getRoleByName($roleName);
     $this->om->startFlushSuite();
     if (is_null($role)) {
         $role = $this->om->factory('Claroline\\CoreBundle\\Entity\\Role');
         $role->setName($roleName);
         $role->setTranslationKey($username);
         $role->setReadOnly(true);
         $role->setType(Role::USER_ROLE);
         $this->om->persist($role);
     }
     $this->associateRole($user, $role, false, false);
     $this->om->endFlushSuite();
     return $role;
 }
Example #18
0
 /**
  * @param User $user
  *
  * @return boolean
  */
 public function sendCreationMessage(User $user)
 {
     $locale = $user->getLocale();
     $content = $this->contentManager->getTranslatedContent(array('type' => 'claro_mail_registration'));
     $displayedLocale = isset($content[$locale]) ? $locale : $this->ch->getParameter('locale_language');
     $body = $content[$displayedLocale]['content'];
     $subject = $content[$displayedLocale]['title'];
     $body = str_replace('%first_name%', $user->getFirstName(), $body);
     $body = str_replace('%last_name%', $user->getLastName(), $body);
     $body = str_replace('%username%', $user->getUsername(), $body);
     $body = str_replace('%password%', $user->getPlainPassword(), $body);
     $subject = str_replace('%platform_name%', $this->ch->getParameter('name'), $subject);
     return $this->send($subject, $body, array($user));
 }