@@ 131-138 (lines=8) @@ | ||
128 | $token = new UsernamePasswordToken($user, 'none', 'none', $user->getRoles()); |
|
129 | $isUnlockable = $this->get('security.access.public_decision_manager')->decide($token, ['view'], $badge); |
|
130 | ||
131 | if (!$isUnlockable) { |
|
132 | $this->addFlash( |
|
133 | 'error', |
|
134 | sprintf('%s does not have access to badge "%s"', $user->getUsername(), $badge->getTitle()) |
|
135 | ); |
|
136 | ||
137 | return $this->redirectToRoute('admin_unlocked_badge_give'); |
|
138 | } |
|
139 | ||
140 | $badgeCompletion = $this->get('badger.game.repository.badge_completion') |
|
141 | ->findOneBy([ |
|
@@ 150-157 (lines=8) @@ | ||
147 | $badgeCompletion = $this->get('badger.game.badge_completion.factory')->create($user, $badge); |
|
148 | } |
|
149 | ||
150 | if (!$badgeCompletion->isPending()) { |
|
151 | $this->addFlash( |
|
152 | 'error', |
|
153 | sprintf('%s already has the badge "%s"', $user->getUsername(), $badge->getTitle()) |
|
154 | ); |
|
155 | ||
156 | return $this->redirectToRoute('admin_unlocked_badge_give'); |
|
157 | } |
|
158 | ||
159 | $badgeCompletion->setPending(false); |
|
160 | $badgeCompletion->setCompletionDate(new \DateTime()); |
|
@@ 211-215 (lines=5) @@ | ||
208 | 'pending' => false |
|
209 | ]); |
|
210 | ||
211 | if (null === $badgeCompletion) { |
|
212 | $this->addFlash( |
|
213 | 'error', |
|
214 | sprintf('%s has no badge named "%s"', $user->getUsername(), $badge->getTitle()) |
|
215 | ); |
|
216 | ||
217 | return $this->redirectToRoute('admin_unlocked_badge_remove'); |
|
218 | } |