public function handleView($request)
    {
        $id = $request->param('MemberID');

        if (!ctype_digit($id)) {
            $this->httpError(404);
        }

        /**
         * @var Member $member
         */
        $member = Member::get()->byID($id);
        $groups = $this->getParent()->Groups();

        if ($groups->count() > 0 && !$member->inGroups($groups)) {
            $this->httpError(403);
        }

        $sections     = $this->getParent()->Sections();
        $sectionsList = new ArrayList();

        foreach ($sections as $section) {
            $sectionsList->push($section);
            $section->setMember($member);
        }

        $this->data()->Title = sprintf(
            _t('MemberProfiles.MEMBERPROFILETITLE', "%s's Profile"),
            $member->getName()
        );
        $this->data()->Parent = $this->getParent();

        $controller = $this->customise(array(
            'Type'     => 'View',
            'Member'   => $member,
            'Sections' => $sectionsList,
            'IsSelf'   => $member->ID == Member::currentUserID()
        ));

        return $controller;
    }