Some minor bug fixes
This commit is contained in:
parent
ce5d5c5cfa
commit
b7953f5535
@ -69,9 +69,6 @@ command_result ConnectedClient::handleCommandClientKick(Command &cmd) {
|
|||||||
|
|
||||||
auto type = cmd["reasonid"].as<ViewReasonId>();
|
auto type = cmd["reasonid"].as<ViewReasonId>();
|
||||||
auto target_channel = type == ViewReasonId::VREASON_CHANNEL_KICK ? this->server->channelTree->getDefaultChannel() : nullptr;
|
auto target_channel = type == ViewReasonId::VREASON_CHANNEL_KICK ? this->server->channelTree->getDefaultChannel() : nullptr;
|
||||||
auto kick_power = type == ViewReasonId::VREASON_CHANNEL_KICK ?
|
|
||||||
this->calculate_permission(permission::i_client_kick_from_channel_power, target_channel->channelId()) :
|
|
||||||
this->calculate_permission(permission::i_client_kick_from_server_power, 0);
|
|
||||||
|
|
||||||
for(size_t index = 0; index < cmd.bulkCount(); index++) {
|
for(size_t index = 0; index < cmd.bulkCount(); index++) {
|
||||||
ConnectedLockedClient<ConnectedClient> client{this->server->find_client_by_id(cmd[index]["clid"].as<ClientId>())};
|
ConnectedLockedClient<ConnectedClient> client{this->server->find_client_by_id(cmd[index]["clid"].as<ClientId>())};
|
||||||
@ -86,11 +83,13 @@ command_result ConnectedClient::handleCommandClientKick(Command &cmd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(type == ViewReasonId::VREASON_CHANNEL_KICK) {
|
if(type == ViewReasonId::VREASON_CHANNEL_KICK) {
|
||||||
|
auto kick_power = this->calculate_permission(permission::i_client_kick_from_channel_power, client->getChannelId());
|
||||||
if(!permission::v2::permission_granted(client->calculate_permission(permission::i_client_needed_kick_from_channel_power, client->getChannelId()), kick_power)) {
|
if(!permission::v2::permission_granted(client->calculate_permission(permission::i_client_needed_kick_from_channel_power, client->getChannelId()), kick_power)) {
|
||||||
result.emplace_result(permission::i_client_needed_kick_from_channel_power);
|
result.emplace_result(permission::i_client_needed_kick_from_channel_power);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
auto kick_power = this->calculate_permission(permission::i_client_kick_from_server_power, client->getChannelId());
|
||||||
if(!permission::v2::permission_granted(client->calculate_permission(permission::i_client_needed_kick_from_server_power, client->getChannelId()), kick_power)) {
|
if(!permission::v2::permission_granted(client->calculate_permission(permission::i_client_needed_kick_from_server_power, client->getChannelId()), kick_power)) {
|
||||||
result.emplace_result(permission::i_client_needed_kick_from_server_power);
|
result.emplace_result(permission::i_client_needed_kick_from_server_power);
|
||||||
continue;
|
continue;
|
||||||
|
@ -154,7 +154,7 @@ command_result ConnectedClient::handleCommandFTGetFileList(Command &cmd) {
|
|||||||
bulk.put_unchecked("size", file.size);
|
bulk.put_unchecked("size", file.size);
|
||||||
bulk.put_unchecked("empty", file.empty);
|
bulk.put_unchecked("empty", file.empty);
|
||||||
bulk.put_unchecked("datetime", std::chrono::duration_cast<std::chrono::seconds>(file.modified_at.time_since_epoch()).count());
|
bulk.put_unchecked("datetime", std::chrono::duration_cast<std::chrono::seconds>(file.modified_at.time_since_epoch()).count());
|
||||||
if(bulk_index >= 16) {
|
if(bulk_index >= 16 && this->getType() != ClientType::CLIENT_QUERY) {
|
||||||
this->sendCommand(notify_file_list);
|
this->sendCommand(notify_file_list);
|
||||||
bulk_index = 0;
|
bulk_index = 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user