Updating files to 1.4.9
This commit is contained in:
@@ -621,6 +621,42 @@ command_result ConnectedClient::handleCommandPlaylistDelPerm(ts::Command &cmd) {
|
||||
return command_result{error::ok};
|
||||
}
|
||||
|
||||
command_result ConnectedClient::handleCommandPlaylistClientList(ts::Command &cmd) {
|
||||
CMD_REF_SERVER(ref_server);
|
||||
CMD_RESET_IDLE;
|
||||
CMD_CHK_AND_INC_FLOOD_POINTS(25);
|
||||
|
||||
auto playlist = ref_server->musicManager->find_playlist(cmd["playlist_id"]);
|
||||
if(!playlist) return command_result{error::playlist_invalid_id};
|
||||
|
||||
{
|
||||
auto value = playlist->calculate_client_specific_permissions(permission::b_virtualserver_playlist_permission_list, this->ref());
|
||||
if(!permission::v2::permission_granted(1, value))
|
||||
return command_result{permission::b_virtualserver_playlist_permission_list};
|
||||
}
|
||||
|
||||
auto permissions = playlist->permission_manager()->channel_permissions();
|
||||
if(permissions.empty())
|
||||
return command_result{error::database_empty_result};
|
||||
|
||||
|
||||
Command result(this->notify_response_command("notifyplaylistclientlist"));
|
||||
auto permission_mapper = serverInstance->getPermissionMapper();
|
||||
|
||||
int index = 0;
|
||||
ClientDbId last_client_id{0};
|
||||
result["playlist_id"] = playlist->playlist_id();
|
||||
for (const auto &[perm, client, value] : permissions) {
|
||||
if(last_client_id != client)
|
||||
result[index++]["cldbid"] = client;
|
||||
}
|
||||
if(index == 0)
|
||||
return command_result{error::database_empty_result};
|
||||
this->sendCommand(result);
|
||||
|
||||
return command_result{error::ok};
|
||||
}
|
||||
|
||||
command_result ConnectedClient::handleCommandPlaylistClientPermList(ts::Command &cmd) {
|
||||
CMD_REF_SERVER(ref_server);
|
||||
CMD_RESET_IDLE;
|
||||
|
||||
Reference in New Issue
Block a user