Skip to content

Commit 66e9e90

Browse files
committed
Merge branch 'develop'
2 parents b07b814 + b103972 commit 66e9e90

13 files changed

Lines changed: 56 additions & 57 deletions

File tree

Controller/TicketController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public function showAction(Ticket $ticket = null)
151151

152152
if ($userManager->getCurrentUser() && $this->get('hackzilla_ticket.user_manager')->hasRole(
153153
$userManager->getCurrentUser(),
154-
TicketRole::Admin
154+
TicketRole::ADMIN
155155
)
156156
) {
157157
$data['delete_form'] = $this->createDeleteForm($ticket->getId())->createView();
@@ -168,7 +168,7 @@ private function checkUserPermission($user, Ticket $ticket)
168168
{
169169
if (!\is_object($user) || (!$this->get('hackzilla_ticket.user_manager')->hasRole(
170170
$user,
171-
TicketRole::Admin
171+
TicketRole::ADMIN
172172
) && $ticket->getUserCreated() != $user->getId())
173173
) {
174174
throw new \Symfony\Component\HttpKernel\Exception\HttpException(403);
@@ -231,7 +231,7 @@ public function deleteAction(Request $request, Ticket $ticket)
231231
$userManager = $this->get('hackzilla_ticket.user_manager');
232232
$user = $userManager->getCurrentUser();
233233

234-
if (!\is_object($user) || !$userManager->hasRole($user, TicketRole::Admin)) {
234+
if (!\is_object($user) || !$userManager->hasRole($user, TicketRole::ADMIN)) {
235235
throw new \Symfony\Component\HttpKernel\Exception\HttpException(403);
236236
}
237237

Entity/TicketRepository.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function getTicketList($userManager, $ticketStatus, $ticketPriority = nul
4141
$user = $userManager->getCurrentUser();
4242

4343
if (\is_object($user)) {
44-
if (!$userManager->hasRole($user, TicketRole::Admin)) {
44+
if (!$userManager->hasRole($user, TicketRole::ADMIN)) {
4545
$query
4646
->andWhere('t.userCreated = :userId')
4747
->setParameter('userId', $user->getId());

EventListener/UserLoad.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
use Doctrine\ORM\Event\LifecycleEventArgs;
66
use Hackzilla\Bundle\TicketBundle\Entity\Ticket;
77
use Hackzilla\Bundle\TicketBundle\Entity\TicketMessage;
8-
use Symfony\Component\DependencyInjection\ContainerInterface;
98

109
class UserLoad
1110
{
12-
protected $container;
11+
protected $userRepository;
1312

14-
public function __construct(ContainerInterface $container)
13+
public function __construct($userRepository)
1514
{
16-
$this->container = $container;
15+
$this->userRepository = $userRepository;
1716
}
1817

1918
public function getSubscribedEvents()
@@ -26,18 +25,18 @@ public function getSubscribedEvents()
2625
public function postLoad(LifecycleEventArgs $args)
2726
{
2827
$entity = $args->getEntity();
29-
$userManager = $this->container->get('hackzilla_ticket.user_manager');
28+
$userRepository = $args->getEntityManager()->getRepository($this->userRepository);
3029

3130
if ($entity instanceof Ticket) {
3231
if (\is_null($entity->getUserCreatedObject())) {
33-
$entity->setUserCreated($userManager->getUserById($entity->getUserCreated()));
32+
$entity->setUserCreated($userRepository->find($entity->getUserCreated()));
3433
}
3534
if (\is_null($entity->getLastUserObject())) {
36-
$entity->setLastUser($userManager->getUserById($entity->getLastUser()));
35+
$entity->setLastUser($userRepository->find($entity->getLastUser()));
3736
}
3837
} elseif ($entity instanceof TicketMessage) {
3938
if (\is_null($entity->getUserObject())) {
40-
$entity->setUser($userManager->getUserById($entity->getUser()));
39+
$entity->setUser($userRepository->find($entity->getUser()));
4140
}
4241
}
4342
}

Form/Type/TicketMessageType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
4848
if (isset($options['new_ticket']) && !$options['new_ticket']) {
4949
$user = $this->userManager->getCurrentUser();
5050

51-
if ($this->userManager->hasRole($user, TicketRole::Admin)) {
51+
if ($this->userManager->hasRole($user, TicketRole::ADMIN)) {
5252
$builder->add(
5353
'status',
5454
method_exists(AbstractType::class, 'getBlockPrefix') ? StatusType::class : new StatusType(),

Manager/TicketManager.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@
88

99
class TicketManager implements TicketManagerInterface
1010
{
11+
private $objectManager;
12+
private $repository;
13+
1114
public function __construct(ObjectManager $om)
1215
{
13-
$this->ObjectManager = $om;
16+
$this->objectManager = $om;
1417
$this->repository = $om->getRepository('HackzillaTicketBundle:Ticket');
1518
}
1619

@@ -42,12 +45,12 @@ public function createMessage()
4245
public function updateTicket(Ticket $ticket, TicketMessage $message = null)
4346
{
4447
if (!\is_null($ticket)) {
45-
$this->ObjectManager->persist($ticket);
48+
$this->objectManager->persist($ticket);
4649
}
4750
if (!\is_null($message)) {
48-
$this->ObjectManager->persist($message);
51+
$this->objectManager->persist($message);
4952
}
50-
$this->ObjectManager->flush();
53+
$this->objectManager->flush();
5154

5255
return $ticket;
5356
}
@@ -59,8 +62,8 @@ public function updateTicket(Ticket $ticket, TicketMessage $message = null)
5962
*/
6063
public function deleteTicket(Ticket $ticket)
6164
{
62-
$this->ObjectManager->remove($ticket);
63-
$this->ObjectManager->flush();
65+
$this->objectManager->remove($ticket);
66+
$this->objectManager->flush();
6467
}
6568

6669
/**

Manager/UserManager.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,16 @@
55
use Doctrine\ORM\EntityRepository;
66
use Hackzilla\Bundle\TicketBundle\Model\UserInterface;
77
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
8-
use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;
98

109
class UserManager implements UserManagerInterface
1110
{
12-
private $authorizationChecker;
1311
private $tokenStorage;
1412
private $userRepository;
1513

1614
public function __construct(
17-
AuthorizationChecker $authorizationChecker,
1815
TokenStorage $tokenStorage,
1916
EntityRepository $userRepository
2017
) {
21-
$this->authorizationChecker = $authorizationChecker;
2218
$this->tokenStorage = $tokenStorage;
2319
$this->userRepository = $userRepository;
2420
}
@@ -44,6 +40,10 @@ public function getCurrentUser()
4440
*/
4541
public function getUserById($userId)
4642
{
43+
if (!$userId) {
44+
return;
45+
}
46+
4747
$user = $this->userRepository->find($userId);
4848

4949
return $user;

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ hackzilla_ticket:
6262

6363
Your user class needs to implement ```Hackzilla\Bundle\TicketBundle\Model\UserInterface```
6464

65+
Roles are now checked against the User
66+
6567

6668
## Pull Requests
6769

Resources/config/services.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
services:
22
hackzilla_ticket.listener:
33
class: Hackzilla\Bundle\TicketBundle\EventListener\UserLoad
4-
arguments: ['@service_container']
4+
arguments:
5+
- %hackzilla_ticket.model.user.class%
56
tags:
67
- { name: doctrine.event_listener, event: postLoad }
78

@@ -13,12 +14,13 @@ services:
1314

1415
hackzilla_ticket.user_manager:
1516
class: Hackzilla\Bundle\TicketBundle\Manager\UserManager
16-
arguments: ['@security.authorization_checker', '@security.token_storage', '@hackzilla_ticket.user_repository']
17+
arguments:
18+
- '@security.token_storage'
19+
- '@hackzilla_ticket.user_repository'
1720

1821
hackzilla_ticket.user_repository:
1922
class: Doctrine\ORM\EntityRepository
20-
factory_service: doctrine.orm.default_entity_manager
21-
factory_method: getRepository
23+
factory: ['@doctrine.orm.default_entity_manager', getRepository]
2224
arguments:
2325
- %hackzilla_ticket.model.user.class%
2426

Resources/views/Ticket/new.html.twig

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<h1>{{ 'HEADING_NEW_TICKET'|trans }}</h1>
55

66
<div class="well well-sm">
7-
<form action="{{ path('hackzilla_ticket_create') }}" method="post" {{ form_enctype(form) }}
8-
class="form-horizontal" role="form">
7+
{{ form_start(form, {'method': 'POST', 'action': path('hackzilla_ticket_create')}) }}
98
<div class="form-group row">
109
{{ form_label(form.subject, '', { 'label_attr': {'class': 'col-lg-2 col-md-2 col-sm-2 control-label'} }) }}
1110
<div class="col-lg-8 col-md-8 col-sm-8">
@@ -26,6 +25,6 @@
2625
</a>
2726
</div>
2827
</div>
29-
</form>
28+
{{ form_end(form) }}
3029
</div>
3130
{% endblock %}

Resources/views/Ticket/show.html.twig

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,25 +62,25 @@
6262

6363
{% if form is defined %}
6464
<div class="well well-sm">
65-
<form action="{{ path('hackzilla_ticket_reply', {id: ticket.id}) }}" method="post" {{ form_enctype(form) }}>
66-
{% include 'HackzillaTicketBundle:Ticket:prototype.html.twig' with {'form': form} %}
65+
{{ form_start(form, {'method': 'POST', 'action': path('hackzilla_ticket_reply', {'id': ticket.id})}) }}
66+
{% include 'HackzillaTicketBundle:Ticket:prototype.html.twig' with {'form': form} %}
6767

68-
{{ form_rest(form) }}
68+
{{ form_rest(form) }}
6969

70-
<p class="form_actions">
71-
<button type="submit" class="btn btn-primary">{{ 'BUTTON_UPDATE'|trans }}</button>
72-
</p>
73-
</form>
70+
<p class="form_actions">
71+
<button type="submit" class="btn btn-primary">{{ 'BUTTON_UPDATE'|trans }}</button>
72+
</p>
73+
{{ form_end(form) }}
7474
</div>
7575
{% endif %}
7676

7777
{% if delete_form is defined %}
78-
<form action="{{ path('hackzilla_ticket_delete', { 'id': ticket.id }) }}" method="post" class="text-right">
79-
<input type="hidden" name="_method" value="DELETE"/>
80-
{{ form_widget(delete_form) }}
78+
{{ form_start(form, {'method': 'POST', 'action': path('hackzilla_ticket_delete', {'id': ticket.id}), 'attr': {'class': 'text-right'}}) }}
79+
<input type="hidden" name="_method" value="DELETE"/>
80+
{{ form_widget(delete_form) }}
8181

82-
<button type="submit" class="btn btn-danger">{{ 'BUTTON_DELETE'|trans }}</button>
83-
</form>
82+
<button type="submit" class="btn btn-danger">{{ 'BUTTON_DELETE'|trans }}</button>
83+
{{ form_end(delete_form) }}
8484
{% endif %}
8585

8686
{% endblock %}

0 commit comments

Comments
 (0)