/**
     * @param Response $response
     *
     * @return UserInterface|null
     */
    public function createUser(Response $response)
    {
        $username = $this->usernameMapper->getUsername($response);

        $attributes = $this->attributeMapper->getAttributesFromResponse($response);

        /*
         * Retrieve roles from attributes array, either at key roles or at key gidNumber (LDAP Auth)
         */
        if (array_key_exists('gidNumber', $attributes)) {
            $roles = $this->getRolesFromGidNumber($attributes['gidNumber']);
        } else {
            $roles = [];
        }

        $user = new User();
        $user
            ->setUsername($username)
            ->setRoles($roles)
        ;

        $this->objectManager->persist($user);
        $this->objectManager->flush();

        return $user;
    }
    
     /**
     * @param int $gidNumber
     */
    private function getRolesFromGidNumber($gidNumber)
    {
        $roles = [];

        foreach ($gidNumber as $number) {
            switch ($number) {
                case '500':
                    array_push($roles, 'ROLE_ADMIN');
                    break;
                case '501':
                    array_push($roles, 'ROLE_USER');
                    break;
            }
        }
        return $roles;
    }