/**
  * {@inheritdoc}
  */
 protected function executeRoleCommand(OutputInterface $output, UserInterface $user, array $securityRoles)
 {
     $error = false;
     foreach ($securityRoles as $securityRole) {
         if (!$user->hasRole($securityRole)) {
             $output->writeln(sprintf('<error>User "%s" didn\'t have "%s" Security role.</error>', (string) $user, $securityRole));
             $error = true;
             continue;
         }
         $user->removeRole($securityRole);
         $output->writeln(sprintf('Security role <comment>%s</comment> has been removed from user <comment>%s</comment>', $securityRole, (string) $user));
     }
     if (!$error) {
         $this->getEntityManager()->flush();
     }
 }
 /**
  * Check if a wishlist is publicly available, or the
  * user has special privileges to access it.
  *
  * @param $user
  * @param $wishlist
  * @return bool
  */
 protected function userCanAccessWishlist(UserInterface $user = null, WishlistInterface $wishlist)
 {
     if ($wishlist->isPublic()) {
         return true;
     }
     if ($user) {
         if ($user->hasRole('ROLE_ADMINISTRATION_ACCESS') || $user->getCustomer() && $user->getCustomer()->getId() == $wishlist->getCustomer()->getId()) {
             return true;
         }
     }
     return false;
 }