public function authorize(RecordInterface & $user)
    {
        // Store pointer to authorized user
        $this->user = &$user;

        $this->authorized = true;

        // TODO: Remove session dependency as storage can be different
        // Save user in session
        $_SESSION[$this->identifier()] = serialize($this->user);

        $this->active = &$this;

        $this->update($this->user);

        // Return authorization status
        return $this->authorized;
    }