Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

kor3k/silex-users

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
57 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Silex Users App


Popis

  • registruje a spravuje uživatele v databázi.
  • registrovaní uživatelé se mohou přihlašovat do aplikace.
  • některé routy / controllery vyžadují přihlášeného uživatele, jiné ne.
  • je možné i nadefinovat uživatele v configu
  • pro model data používá ORM + MySQL
  • pro views Twig
  • pro zabezpečení Symfony\Security component
  • pro uchování uživatelského kontextu Symfony\Session
  • Symfony\Translation pro překlady prvků aplikace, zvolený jazyk ukládá do Session
    • což porušuje bezestavovost http protokolu a REST principy (jedna url vrací různá data na základě kontextu). správná implementace by měla brát v potaz Accept-Language request header a/nebo _locale query parameter
  • silex security provider
  • pro html/css layout unsemantic, pro html/css ui bootstrap

Instalace

  1. download silex-users
  1. download composer

     php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
    
  2. update

  3. vytvořit složky /cache a /logs

  4. vytvořit schéma v databázi

    • dle /Resources/sql/users.sql
    • v MySQL Workbench - Open /Resources/sql/users.mwb , Database -> Synchronize Model
  5. upravit nastavení ve front controlleru /web/index.php - připojení k db, mailer user atd

  6. http://localhost/silex-users/web/index.php/index


Použití

Po přihlášení uživatele je ten dostupný přes Application::user, tedy $app->user() v php a {{ app.user }} v Twigu. Pozor ovšem, hodnota metody může být:

  • null (na routě mimo firewall)
  • string 'anon.' (na routě za firewallem autorizované anonymně)
  • Symfony\Component\Security\Core\User\UserInterface (na routě za fw autorizované plně)

Takže je lepší před přístupem kontrolovat roli IS_AUTHENTICATED_FULLY nebo ROLE_USER pomocí Application::isGranted:

    if( $app->isGranted( 'ROLE_USER' ) )
    {
 	  echo $app->user()->getUsername();
    }  
    else
    {
 	  echo 'anonymous';
    }

a v Twigu:

   {% if is_granted( 'ROLE_USER' ) %}
       {{ app.user.username }}    
   {% else %} 
       anonymous
   {% endif %}   
  • metoda Application::isGranted vrací true | false pokud uživatel má nebo nemá danou roli.

  • pokud ji zavoláme s druhým argumentem true, tak v případě, že uživatel roli nemá, nevrací false, nýbrž vyhodí AccessDeniedException:

      $app->isGranted( 'ROLE_USER' , true );
    

Update

  1. update dependencies

     php composer.phar self-update && php composer.phar update --optimize-autoloader
    

Hints

  • cesta k php musí být v systémové Path proměnné:

    • Control Panels -> System -> Advanced system settings -> Environment Variables -> System Variables -> Path -> Edit,
    • přidat k současné hodnotě ;c:\wamp\bin\php\php5.5\
  • příkazy se spouští v git bashi


Links


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.