public function Approve($UserID, $Email) {
      $ApplicantRoleID = C('Garden.Registration.ApplicantRoleID', 0);
      
      // Make sure the $UserID is an applicant
      $RoleData = $this->GetRoles($UserID);
      if ($RoleData->NumRows() == 0) {
         throw new Exception(T('ErrorRecordNotFound'));
      } else {
         $AppRoles = $RoleData->Result(DATASET_TYPE_ARRAY);
         $ApplicantFound = FALSE;
         foreach ($AppRoles as $AppRole)
            if (GetValue('RoleID', $AppRole) == $ApplicantRoleID) $ApplicantFound = TRUE;
      }

      if ($ApplicantFound) {
         // Retrieve the default role(s) for new users
         $RoleIDs = C('Garden.Registration.DefaultRoles', array(8));

         // Wipe out old & insert new roles for this user
         $this->SaveRoles($UserID, $RoleIDs, FALSE);

         // Send out a notification to the user
         $User = $this->GetID($UserID);
         if ($User) {
				$Email->Subject(sprintf(T('[%1$s] Membership Approved'), C('Garden.Title')));
				$Email->Message(sprintf(T('EmailMembershipApproved'), $User->Name, ExternalUrl(SignInUrl())));
				$Email->To($User->Email);
				//$Email->From(C('Garden.SupportEmail'), C('Garden.SupportName'));
				$Email->Send();
            
            // Report that the user was approved.
            $ActivityModel = new ActivityModel();
            $ActivityModel->Save(array(
                'ActivityUserID' => $UserID,
                'ActivityType' => 'Registration',
                'HeadlineFormat' => T('HeadlineFormat.Registration', '{ActivityUserID,You} joined.'),
                'Story' => T('Welcome Aboard!')
               ),
               FALSE,
               array('GroupBy' => 'ActivityTypeID'));
            
            // Report the approval for moderators.
            $ActivityModel->Save(array(
                'ActivityType' => 'Registration',
                'ActivityUserID' => Gdn::Session()->UserID,
                'RegardingUserID' => $UserID,
                'NotifyUserID' => ActivityModel::NOTIFY_MODS,
                'HeadlineFormat' => T('HeadlineFormat.RegistrationApproval', '{ActivityUserID,user} approved the applications for {RegardingUserID,user}.')),
                FALSE,
                array('GroupBy' => array('ActivityTypeID', 'ActivityUserID')));
            
            Gdn::UserModel()->SaveAttribute($UserID, 'ApprovedByUserID', Gdn::Session()->UserID);
         }
         
         

         
      }
      return TRUE;
   }