Exemple #1
0
 /**
  * Approve a membership applicant.
  */
 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 {
         $ApplicantFound = FALSE;
         foreach ($RoleData->Result() as $Role) {
             if ($Role->RoleID == $ApplicantRoleID) {
                 $ApplicantFound = TRUE;
             }
         }
     }
     if ($ApplicantFound) {
         // Retrieve the default role(s) for new users
         $RoleIDs = Gdn::Config('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->Get($UserID);
         if ($User) {
             $Email->Subject(sprintf(T('[%1$s] Membership Approved'), C('Garden.Title')));
             $Email->Message(sprintf(T('EmailMembershipApproved'), $User->Name, Url(Gdn::Authenticator()->SignInUrl(), TRUE)));
             $Email->To($User->Email);
             //$Email->From(C('Garden.SupportEmail'), C('Garden.SupportName'));
             $Email->Send();
         }
         // Report that the user was approved
         $Session = Gdn::Session();
         AddActivity($Session->UserID, 'JoinApproved', T('Welcome Aboard!'), $UserID, '', FALSE);
     }
     return TRUE;
 }
Exemple #2
0
 public function RecordActivity($Discussion, $ActivityUserID, $CommentID, $SendEmail = '')
 {
     // Get the author of the discussion
     if ($Discussion->InsertUserID != $ActivityUserID) {
         AddActivity($ActivityUserID, 'DiscussionComment', Anchor(Gdn_Format::Text($Discussion->Name), 'discussion/comment/' . $CommentID . '/#Comment_' . $CommentID), $Discussion->InsertUserID, 'discussion/comment/' . $CommentID . '/#Comment_' . $CommentID, $SendEmail);
     }
 }
 public function AddUserToConversation($ConversationID, $UserID)
 {
     if (!is_array($UserID)) {
         $UserID = array($UserID);
     }
     // First define the current users in the conversation
     $OldContributorData = $this->GetRecipients($ConversationID);
     $OldContributorUserIDs = ConsolidateArrayValuesByKey($OldContributorData->ResultArray(), 'UserID');
     $AddedUserIDs = array();
     // Get some information about this conversation
     $ConversationData = $this->SQL->Select('MessageID', 'max', 'LastMessageID')->Select('MessageID', 'count', 'CountMessages')->From('ConversationMessage')->Where('ConversationID', $ConversationID)->Get()->FirstRow();
     // Add the user(s) if they are not already in the conversation
     foreach ($UserID as $NewUserID) {
         if (!in_array($NewUserID, $OldContributorUserIDs)) {
             $AddedUserIDs[] = $NewUserID;
             $this->SQL->Insert('UserConversation', array('UserID' => $NewUserID, 'ConversationID' => $ConversationID, 'LastMessageID' => $ConversationData->LastMessageID, 'CountMessages' => $ConversationData->CountMessages, 'CountNewMessages' => $ConversationData->CountMessages));
         }
     }
     if (count($AddedUserIDs) > 0) {
         $Session = Gdn::Session();
         // Update the Contributors field on the conversation
         $Contributors = array_unique(array_merge($AddedUserIDs, $OldContributorUserIDs));
         sort($Contributors);
         $this->SQL->Update('Conversation')->Set('Contributors', Format::Serialize($Contributors))->Where('ConversationID', $ConversationID)->Put();
         // NOTIFY ALL NEWLY ADDED USERS THAT THEY WERE ADDED TO THE CONVERSATION
         foreach ($AddedUserIDs as $AddedUserID) {
             AddActivity($Session->UserID, 'AddedToConversation', '', $AddedUserID, '/messages/' . $ConversationID);
         }
         // Update the unread conversation count for each affected user
         $this->SQL->Update('User')->Set('CountUnreadConversations', 'CountUnreadConversations + 1', FALSE)->WhereIn('UserID', $AddedUserIDs)->Put();
     }
 }
 public function RecordActivity($UserID, $DiscussionID, $DiscussionName)
 {
     // Report that the discussion was created
     AddActivity($UserID, 'NewDiscussion', Anchor(Gdn_Format::Text($DiscussionName), 'vanilla/discussion/' . $DiscussionID . '/' . Gdn_Format::Url($DiscussionName)));
     // Get the user's discussion count
     $Data = $this->SQL->Select('DiscussionID', 'count', 'CountDiscussions')->From('Discussion')->Where('InsertUserID', $UserID)->Get();
     // Save the count to the user table
     $this->SQL->Update('User')->Set('CountDiscussions', $Data->NumRows() > 0 ? $Data->FirstRow()->CountDiscussions : 0)->Where('UserID', $UserID)->Put();
 }
Exemple #5
0
 public function RecordActivity($ReplyCommentID, $ActivityUserID, $CommentID)
 {
     // Get the author of the discussion
     $CommentModel = new CommentModel();
     $Comment = $CommentModel->GetID($ReplyCommentID);
     if ($ActivityUserID != $Comment->InsertUserID) {
         AddActivity($ActivityUserID, 'CommentReply', '', $Comment->InsertUserID, 'discussion/reply/' . $CommentID . '/#Comment_' . $ReplyCommentID);
     }
 }
Exemple #6
0
 /**
  * Record advanced notifications for users.
  * 
  * @param ActivityModel $ActivityModel
  * @param array $Discussion
  * @param int $CommentID
  * @param array $NotifiedUsers 
  */
 public function RecordAdvancedNotications($ActivityModel, $Discussion, $Comment, &$NotifiedUsers)
 {
     // Grab all of the users that need to be notified.
     $Data = $this->SQL->GetWhere('UserMeta', array('Name' => 'Preferences.Email.NewDiscussion'))->ResultArray();
     // Grab all of their follow/unfollow preferences.
     $UserIDs = ConsolidateArrayValuesByKey($Data, 'UserID');
     $CategoryID = GetValue('CategoryID', $Discussion);
     $UserPrefs = $this->SQL->Select('*')->From('UserCategory')->Where('CategoryID', $CategoryID)->WhereIn('UserID', $UserIDs)->Get()->ResultArray();
     $UserPrefs = Gdn_DataSet::Index($UserPrefs, 'UserID');
     $CommentID = $Comment['CommentID'];
     foreach ($UserIDs as $UserID) {
         //         if ($UserID == $Comment['InsertUserID'])
         //            continue;
         if (in_array($UserID, $NotifiedUsers)) {
             continue;
         }
         if (array_key_exists($UserID, $UserPrefs) && $UserPrefs[$UserID]['Unfollow']) {
             continue;
         }
         $ActivityID = AddActivity($Comment['InsertUserID'], 'NewComment', Gdn_Format::Text(Gdn_Format::To($Comment['Body'], $Comment['Format'])), $UserID, "/discussion/comment/{$CommentID}#Comment_{$CommentID}", TRUE);
         //         $ActivityModel->QueueNotification($ActivityID);
         $NotifiedUsers[] = $UserID;
     }
 }
Exemple #7
0
 public function Approve($UserID, $Email)
 {
     // Make sure the $UserID is an applicant
     $RoleData = $this->GetRoles($UserID);
     if ($RoleData->NumRows() == 0) {
         throw new Exception(Gdn::Translate('ErrorRecordNotFound'));
     } else {
         $ApplicantFound = FALSE;
         foreach ($RoleData->Result() as $Role) {
             if ($Role->RoleID == 4) {
                 $ApplicantFound = TRUE;
             }
         }
     }
     if ($ApplicantFound) {
         // Retrieve the default role(s) for new users
         $RoleIDs = Gdn::Config('Garden.Registration.DefaultRoles', array(8));
         // Wipe out old & insert new roles for this user
         $this->SaveRoles($UserID, $RoleIDs);
         // Send out a notification to the user
         $SignInUrl = CombinePaths(array(Gdn_Url::WebRoot(TRUE), 'entry', 'signin'), '/');
         $User = $this->Get($UserID);
         if ($User) {
             $Email->Subject(Gdn::Translate('MembershipApprovedSubject'));
             $Email->Message(sprintf(Gdn::Translate('MembershipApprovedEmail'), $User->Name, $SignInUrl));
             $Email->To($User->Email);
             $Email->Send();
         }
         // Report that the user was approved
         $Session = Gdn::Session();
         AddActivity($UserID, 'JoinApproved', Gdn::Translate('Welcome Aboard!'), $Session->UserID);
     }
     return TRUE;
 }
Exemple #8
0
 public function SaveUser($User, $BannedValue)
 {
     $Banned = $User['Banned'];
     if ($Banned == $BannedValue) {
         return;
     }
     // Add the activity.
     $ActivityType = $BannedValue ? 'Banned' : 'Unbanned';
     AddActivity(Gdn::Session()->UserID, $ActivityType, '', $User['UserID']);
     $this->SQL->Update('User u')->Set('u.Banned', $BannedValue)->Where('u.UserID', $User['UserID'])->Put();
 }
 public function NotifyNewDiscussion($Discussion)
 {
     if (is_numeric($Discussion)) {
         $Discussion = $this->GetID($Discussion);
     }
     // Grab all of the users that need to be notified.
     $Data = $this->SQL->GetWhere('UserMeta', array('Name' => 'Preferences.Email.NewDiscussion'))->ResultArray();
     // Grab all of their follow/unfollow preferences.
     $UserIDs = ConsolidateArrayValuesByKey($Data, 'UserID');
     $CategoryID = $Discussion['CategoryID'];
     $UserPrefs = $this->SQL->Select('*')->From('UserCategory')->Where('CategoryID', $CategoryID)->WhereIn('UserID', $UserIDs)->Get()->ResultArray();
     $UserPrefs = Gdn_DataSet::Index($UserPrefs, 'UserID');
     foreach ($Data as $Row) {
         $UserID = $Row['UserID'];
         if ($UserID == $Discussion['InsertUserID']) {
             continue;
         }
         if (array_key_exists($UserID, $UserPrefs) && $UserPrefs[$UserID]['Unfollow']) {
             continue;
         }
         AddActivity($Discussion['InsertUserID'], 'NewDiscussion', Anchor(Gdn_Format::Text($Discussion['Name']), ExternalUrl('discussion/' . $Discussion['DiscussionID'] . '/' . Gdn_Format::Url($Discussion['Name']))), $UserID, '/discussion/' . $Discussion['DiscussionID'] . '/' . Gdn_Format::Url($Discussion['Name']), TRUE);
     }
 }
 /**
  * Add another user to the conversation.
  * 
  * @since 2.0.0
  * @access public
  *
  * @param int $ConversationID Unique ID of conversation effected.
  * @param int $UserID Unique ID of current user.
  */
 public function AddUserToConversation($ConversationID, $UserID)
 {
     if (!is_array($UserID)) {
         $UserID = array($UserID);
     }
     // First define the current users in the conversation
     $OldContributorData = $this->GetRecipients($ConversationID);
     $OldContributorData = Gdn_DataSet::Index($OldContributorData, 'UserID');
     $AddedUserIDs = array();
     // Get some information about this conversation
     $ConversationData = $this->SQL->Select('LastMessageID')->Select('CountMessages')->From('Conversation')->Where('ConversationID', $ConversationID)->Get()->FirstRow();
     // Add the user(s) if they are not already in the conversation
     foreach ($UserID as $NewUserID) {
         if (!array_key_exists($NewUserID, $OldContributorData)) {
             $AddedUserIDs[] = $NewUserID;
             $this->SQL->Insert('UserConversation', array('UserID' => $NewUserID, 'ConversationID' => $ConversationID, 'LastMessageID' => $ConversationData->LastMessageID, 'CountReadMessages' => 0));
         } elseif ($OldContributorData[$NewUserID]->Deleted) {
             $AddedUserIDs[] = $NewUserID;
             $this->SQL->Put('UserConversation', array('Deleted' => 0), array('ConversationID' => $ConversationID, 'UserID' => $NewUserID));
         }
     }
     if (count($AddedUserIDs) > 0) {
         $Session = Gdn::Session();
         // Update the Contributors field on the conversation
         $Contributors = array_unique(array_merge($AddedUserIDs, array_keys($OldContributorData)));
         sort($Contributors);
         $this->SQL->Update('Conversation')->Set('Contributors', Gdn_Format::Serialize($Contributors))->Where('ConversationID', $ConversationID)->Put();
         foreach ($AddedUserIDs as $AddedUserID) {
             // And notify them that they were added to the conversation
             AddActivity($Session->UserID, 'AddedToConversation', '', $AddedUserID, '/messages/' . $ConversationID);
         }
         $this->UpdateUserUnreadCount($AddedUserIDs);
     }
 }
   public function NotifyNewDiscussion($Discussion) {
      if (is_numeric($Discussion)) {
         $Discussion = $this->GetID($Discussion);
      }

      // Grab all of the users that are need to be notified.
      $Data = $this->SQL->GetWhere('UserMeta', array('Name' => 'Preferences.Email.NewDiscussion'))->ResultArray();

      foreach ($Data as $Row) {
         $UserID = $Row['UserID'];
         if ($UserID == $Discussion['InsertUserID'])
            continue;

         AddActivity($Discussion['InsertUserID'],
            'NewDiscussion',
            Anchor(Gdn_Format::Text($Discussion['Name']), ExternalUrl('discussion/'.$Discussion['DiscussionID'].'/'.Gdn_Format::Url($Discussion['Name']))),
            $UserID,
            '/discussion/'.$Discussion['DiscussionID'].'/'.Gdn_Format::Url($Discussion['Name']),
            TRUE);
      }
   }
Exemple #12
0
     if ($uploadOk == 0) {
         echo nl2br("\r\n Error 64: Sorry, your file was not uploaded.");
         echo nl2br("\r\nYou will be redirected to the upload page in 5 seconds.");
         header('refresh: 5; url=upload.html');
         // if everything is ok, try to upload file
     } else {
         if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
             echo nl2br("\r\nThe file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded.");
             $Query = 'CALL UpdateDocument (?, ?, ?)';
             $Statement = $PDOconn->prepare($Query);
             $Statement->bindParam(1, $filename, PDO::PARAM_STR, 255);
             $Statement->bindParam(2, $Email, PDO::PARAM_STR, 45);
             $Statement->bindParam(3, $Name, PDO::PARAM_STR, 45);
             $Statement->execute();
             $ActivityMSG = "You uploaded " . $Name . "'s document.";
             AddActivity($Email, $ActivityMSG);
             $Action = "Upload";
             $AdminAccounts = FetchAdmins($Action);
             foreach ($AdminAccounts as $AdminEmail) {
                 mail($AdminEmail['Email'], "Pet document uploaded", "The following account: " . $Email . " has uploaded the pet documentation for " . $Name . ".  Pet is awaiting your approval.");
             }
             echo nl2br("\r\nYou will be redirected to the homepage in 5 seconds.");
             header('refresh: 5; url=index.html');
         } else {
             echo nl2br("\r\n Error 65: Sorry, there was an error uploading your file.");
             echo nl2br("\r\nYou will be redirected to the upload page in 5 seconds.");
             header('refresh: 5; url=upload.html');
         }
     }
 } else {
     echo nl2br("\r\n Error 63: Sorry, you don't have a pet named " . $Name . ".");
Exemple #13
0
 public function RecordActivity($DiscussionID, $ActivityUserID, $CommentID)
 {
     // Get the author of the discussion
     $DiscussionModel = new Gdn_DiscussionModel();
     $Discussion = $DiscussionModel->GetID($DiscussionID);
     if ($Discussion->InsertUserID != $ActivityUserID) {
         AddActivity($ActivityUserID, 'DiscussionComment', '', $Discussion->InsertUserID, 'discussion/comment/' . $CommentID . '/#Comment_' . $CommentID);
     }
 }
Exemple #14
0
function SignOut($Action)
{
    $Email = ValidateSession($Action);
    DeleteSession($Action, $Email);
    $ActivityMSG = "You signed out.";
    AddActivity($Action, $Email, $ActivityMSG);
    session_unset();
    session_destroy();
    echo json_encode("refresh");
}
Exemple #15
0
require_once '../db.php';
require_once '../operations.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['add'])) {
    $Action = "admin.php";
    $Email = $_POST['Email'];
    $Password = $_POST['Password'];
    $HashedPassword = HashIt($Password);
    $Disabled = 0;
    $Attempt = 0;
    $AdminCode = 2;
    global $PDOconn;
    $Query = 'CALL AddAdminAccount (?,?,?,?,?)';
    $Statement = $PDOconn->prepare($Query);
    $Statement->bindParam(1, $Email, PDO::PARAM_STR, 45);
    $Statement->bindParam(2, $HashedPassword, PDO::PARAM_STR, 255);
    $Statement->bindParam(3, $Disabled, PDO::PARAM_INT, 1);
    $Statement->bindParam(4, $Attempt, PDO::PARAM_INT, 1);
    $Statement->bindParam(5, $AdminCode, PDO::PARAM_INT, 1);
    $Statement->execute();
    $ActivityMSG = "Your account was created by an admin.";
    AddActivity($Action, $Email, $ActivityMSG);
    $MSG = "Super Admin created.";
    $PDOconn = null;
    echo "<script type='text/javascript'>alert('{$MSG}'); window.location = \"/petsignin/sa/admin.php\";</script>";
}
?>
</form>
</body>
</html>