Conversation name can be updated

This commit is contained in:
Pierre 2017-06-18 10:41:43 +02:00
parent 952779f527
commit 219e26b4c0
2 changed files with 70 additions and 2 deletions

View File

@ -122,8 +122,27 @@ class conversationsController{
Rest_fatal_error(500, "Couldn't update user follow state !"); Rest_fatal_error(500, "Couldn't update user follow state !");
} }
//Check if user asked to change moderation settings
if(isset($_POST['members']) OR isset($_POST['name'])){
//Check if user is allowed to change such settings
if(!CS::get()->components->conversations->userIsModerator(userID, $conversationID))
Rest_fatal_error(401, "The user isn't a moderator, he can't updates such settings !");
//Update conversation name (if required)
if(isset($_POST["name"])){
$conversationName = $_POST['name'] == "false" ? "" : $_POST['name'];
//Update conversation name
if(!CS::get()->components->conversations->changeName($conversationID, $conversationName))
Rest_fatal_error(500, "Couldn't update conversation name !");
}
}
//Success //Success
return array("success" => "User informations were successfully updated !"); return array("success" => "Conversation informations were successfully updated !");
} }
} }

View File

@ -238,13 +238,62 @@ class conversations {
return true; return true;
} }
/**
* Change conversation name
*
* @param Integer $conversationID The ID of the conversation
* @param String $conversationName The name of the conversation
* @return Boolean True for a success
*/
public function changeName($conversationID, $conversationName){
//Prepare database request
$tableName = $this->conversationsListTable;
$conditions = "ID = ?";
$condVals = array($conversationID);
//Changes
$changes = array(
"name" => $conversationName,
);
//Try to perform request
if(!CS::get()->db->updateDB($tableName, $conditions, $changes, $condVals))
return false; //An error occured
//Success
return true;
}
/** /**
* Check if a user is a conversation moderator or not * Check if a user is a conversation moderator or not
* *
* @param Integer $userID The ID of the user to check * @param Integer $userID The ID of the user to check
* @param Integer $conversationID The ID of the conversation to check * @param Integer $conversationID The ID of the conversation to check
* @return Boolean True if the user is a conversation moderator or not * @return Boolean True if the user is a conversation moderator / false else
*/ */
public function userIsModerator($userID, $conversationID){
//Prepare database request
$tableName = $this->conversationsListTable;
$conditions = "WHERE ID = ?";
$values = array($conversationID);
$requiredFields = array(
"ID_utilisateurs"
);
//Peform a request on the database
$results = CS::get()->db->select($tableName, $conditions, $values, $requiredFields);
//Check for errors
if($results === false)
return false; // An error occured
//Check if there was results
if(count($results) === 0)
return false;
//Check the first result only
return $results[0]["ID_utilisateurs"] == $userID;
}
} }