|
@@ 123-130 (lines=8) @@
|
| 120 |
|
$token = new UsernamePasswordToken($user, 'none', 'none', $user->getRoles()); |
| 121 |
|
$isUnlockable = $this->get('security.access.decision_manager')->decide($token, ['view'], $badge); |
| 122 |
|
|
| 123 |
|
if (!$isUnlockable) { |
| 124 |
|
$this->addFlash('error', sprintf('%s does not have access to badge "%s"', |
| 125 |
|
$user->getUsername(), |
| 126 |
|
$badge->getTitle() |
| 127 |
|
)); |
| 128 |
|
|
| 129 |
|
return $this->redirectToRoute('admin_unlocked_badge_give'); |
| 130 |
|
} |
| 131 |
|
|
| 132 |
|
$badgeCompletion = $this->get('badger.game.repository.badge_completion') |
| 133 |
|
->findOneBy([ |
|
@@ 143-150 (lines=8) @@
|
| 140 |
|
->create($user, $badge); |
| 141 |
|
} |
| 142 |
|
|
| 143 |
|
if (!$badgeCompletion->isPending()) { |
| 144 |
|
$this->addFlash('error', sprintf('%s already has the badge "%s"', |
| 145 |
|
$user->getUsername(), |
| 146 |
|
$badge->getTitle() |
| 147 |
|
)); |
| 148 |
|
|
| 149 |
|
return $this->redirectToRoute('admin_unlocked_badge_give'); |
| 150 |
|
} |
| 151 |
|
|
| 152 |
|
$badgeCompletion->setPending(false); |
| 153 |
|
$badgeCompletion->setCompletionDate(new \DateTime()); |
|
@@ 201-205 (lines=5) @@
|
| 198 |
|
'pending' => false |
| 199 |
|
]); |
| 200 |
|
|
| 201 |
|
if (null === $badgeCompletion) { |
| 202 |
|
$this->addFlash('error', sprintf('%s has no badge named "%s"', $user->getUsername(), $badge->getTitle())); |
| 203 |
|
|
| 204 |
|
return $this->redirectToRoute('admin_unlocked_badge_remove'); |
| 205 |
|
} |
| 206 |
|
|
| 207 |
|
$badgeCompletionRemover = $this->get('badger.game.remover.badge_completion'); |
| 208 |
|
$badgeCompletionRemover->remove($badgeCompletion); |