Site de gestion du FabLab de CentraleLille
Install dependencies:
composer install
npm install -g bower
bower install
Install ElasticSearch :
Downdload & dezip V1.7.5 => https://www.elastic.co/downloads/past-releases/elasticsearch-1-7-5 Launch Elasticsearch
Bower will install bootstrap for layout.
###Integration
Local server at : http://172.31.4.227
It actualizes from GitHub once every day.
###Tests
Scripts tests.bat or tests.sh
We use the PSR-2 PHP Standard, you can test locally with this command :
./vendor/squizlabs/php_codesniffer/scripts/phpcs --standard=PSR2 src/
Use the code fixer with phpcbf
instead of phpcs
./vendor/squizlabs/php_codesniffer/scripts/phpcbf --standard=PSR2 src/
For windows :
php ./vendor/squizlabs/php_codesniffer/scripts/phpcs --standard=PSR2 src/ --no-patch
php app/console doctrine:database:drop --force
php app/console doctrine:database:create
php app/console doctrine:schema:create
php app/console doctrine:fixtures:load
- Rôle de type normal (scope = tout le site) :
- ROLE_ADMIN : Permet d'accéder à tout et d'effectuer toutes les actions
- ROLE_USER : Permet de voir les projets (rôle par défaut lorsqu'on possède un compte)
- Rôle de type projet (scope = projet) :
- PROJECT_MEMBER : Permet d'accéder aux parties privées de la page projet (rôle par défaut lorsqu'on est membre du projet)
- PROJECT_LEADER : Permet d'effectuer des actions supplémentaires dans les pages privées du projet
URL : /users
Il suffit d'ajouter deux lignes de code du controlleur Ex : ProjectController
/**
* @Route("/edit/{projectId}", name="project_edit")
* @param $projectId
* @return \Symfony\Component\HttpFoundation\Response
*/
public function editAction($projectId)
{
...
/**
* Control access for members only
*/
$this->denyAccessUnlessGranted(ProjectRole::PROJECT_ROLE_MEMBER, $project);
return $this->render(
'CustomFosUserBundle:Project:show.html.twig',
array(
'project' => $project,
'currentUser' => $currentUser
)
);
}
Il suffit d'ajouter dans le template la ligne suivante:
{% if project_service.isAllowedLeader(currentUser, project) %}
<p>This part is visible only by the PROJECT_LEADER</p>
{% endif %}