Code Duplication    Length = 51-51 lines in 2 locations

src/Badger/Bundle/GameBundle/Controller/BadgeCompletionController.php 1 location

@@ 114-164 (lines=51) @@
111
    {
112
        $badgeRepository = $this->get('badger.game.repository.badge');
113
114
        if ('POST' === $request->getMethod()) {
115
            $validator = $this->get('validator');
116
117
            $user = $this->get('fos_user.user_manager')->findUserByUsername($request->get('user'));
118
            $badge = $badgeRepository->find($request->get('badge'));
119
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
            $isUnlocked = $this->get('badger.game.repository.unlocked_badge')
133
                ->findOneBy([
134
                    'user' => $user,
135
                    'badge' => $badge
136
                ]);
137
138
            if ($isUnlocked) {
139
                $this->addFlash('error', sprintf('%s already has the badge "%s"',
140
                    $user->getUsername(),
141
                    $badge->getTitle()
142
                ));
143
144
                return $this->redirectToRoute('admin_unlocked_badge_give');
145
            }
146
147
            $unlockedBadgeFactory = $this->get('badger.game.unlocked_badge.factory');
148
            $unlockedBadge = $unlockedBadgeFactory->create($user, $badge);
149
150
            $errors = $validator->validate($unlockedBadge);
151
152
            if (0 === count($errors)) {
153
                $unlockedBadgeSaver = $this->get('badger.game.saver.unlocked_badge');
154
                $unlockedBadgeSaver->save($unlockedBadge);
155
156
                $this->addFlash('notice', sprintf(
157
                    '%s successfully received the badge "%s"!',
158
                    $user->getUsername(),
159
                    $badge->getTitle()
160
                ));
161
            } else {
162
                $this->addFlash('error', (string) $errors);
163
            }
164
        }
165
166
        $badges = $badgeRepository->findAll();
167
        $usernames = $this->get('badger.user.repository.user')->getAllUsernames();

src/Badger/Bundle/GameBundle/Controller/UnlockedBadgeController.php 1 location

@@ 30-80 (lines=51) @@
27
    {
28
        $badgeRepository = $this->get('badger.game.repository.badge');
29
30
        if ('POST' === $request->getMethod()) {
31
            $validator = $this->get('validator');
32
33
            $user = $this->container->get('fos_user.user_manager')->findUserByUsername($request->get('user'));
34
            $badge = $badgeRepository->findOneById($request->get('badge'));
35
36
            $token = new UsernamePasswordToken($user, 'none', 'none', $user->getRoles());
37
            $isUnlockable = $this->get('security.access.decision_manager')->decide($token, ['view'], $badge);
38
39
            if (!$isUnlockable) {
40
                $this->addFlash('error', sprintf('%s does not have access to badge "%s"',
41
                    $user->getUsername(),
42
                    $badge->getTitle()
43
                ));
44
45
                return $this->redirectToRoute('admin_unlocked_badge_give');
46
            }
47
48
            $isUnlocked = $this->get('badger.game.repository.unlocked_badge')
49
                ->findOneBy([
50
                    'user' => $user,
51
                    'badge' => $badge
52
                ]);
53
54
            if ($isUnlocked) {
55
                $this->addFlash('error', sprintf('%s already has the badge "%s"',
56
                    $user->getUsername(),
57
                    $badge->getTitle()
58
                ));
59
60
                return $this->redirectToRoute('admin_unlocked_badge_give');
61
            }
62
63
            $unlockedBadgeFactory = $this->get('badger.game.unlocked_badge.factory');
64
            $unlockedBadge = $unlockedBadgeFactory->create($user, $badge);
65
66
            $errors = $validator->validate($unlockedBadge);
67
68
            if (0 === count($errors)) {
69
                $unlockedBadgeSaver = $this->get('badger.game.saver.unlocked_badge');
70
                $unlockedBadgeSaver->save($unlockedBadge);
71
72
                $this->addFlash('notice', sprintf(
73
                    '%s successfully received the badge "%s"!',
74
                    $user->getUsername(),
75
                    $badge->getTitle()
76
                ));
77
            } else {
78
                $this->addFlash('error', (string) $errors);
79
            }
80
        }
81
82
        $badges = $badgeRepository->findAll();
83