• Hey Guest, we're evolving the future of TeaSpeak.
    You're invited to join the discussion here!

Pending Client move semantics

Pamonha

Well-known member
Premium User
Some situations have been happening since the beginning of version 1.4.x, in this recently released version there are still some bugs.

-> Moving a user, even if his tag has the power of 75, is prevented from being moved due to an insufficient power error.

-> I did a test to remove my total speaking power, when trying to add it again I get the error i_permission_modify_power, even though my power is the highest on the server.

These are some of the tests I performed before aborting to upgrade my server to this version.
 

xDyego

Well-known member
Premium User
I don't know if I understood the error well, but I tried to reproduce this error on my test server and I couldn't, there was no error. It could be your database with problems, I don't know. The TeaSpeak Masters already seem to solve your problem.
 

Pamonha

Well-known member
Premium User
In this case, the test was based on an update from a version of a stable platform to the corresponding version. Exit version 1.3.25, which in my view is more stable, to version 1.4.14-beta-6.

Unfortunately, basing the test functions as I did from a new server without modifications, is abandoning all the existing work. Since we would have to recreate all the rooms and permissions so that we would eventually come back to using the teaspeak app.
 

Pamonha

Well-known member
Premium User
how are you checking your permissions?
I guess you're using TS3 right?
I don't use Tea*Speak to change permissions by recommendations, even your own, I always use yatqa to modify each group in advanced mode. The teaspeak client ends up with strange behavior on my computer, closing a few times before I can complete a modification job.
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Hmmm I'm not sure why the talk power permission than affects the user move stuff^^
And using YatQA is a good choose ;)

May set the logging mode to trace and receive some permission calculate logs.
This may will outline the error.
 

Pamonha

Well-known member
Premium User
I looked at the records, but there is no mention of the error .. For you to understand better.

Channel Admin
Power to move: 75
Power needed to be moved: Disabled

Channel Guest
Power to move: 0
Power needed to be moved: 1
When the channel admin tries to move the visitor, the result is denied because it informs that the channel admin does not have enough power to be moved.

So I try to do it another way.

Channel Admin
Power to move: 75
Power needed to be moved: 75

Channel Test
Power to move: 0
Power needed to be moved: 2
The result returns to be negative, stating that the i_client_move_power permission is insufficient to move the Channel Test.

However, this is limited only to groups of channels, since to groups on the server the function seems to behave well.

I performed the test with several users, with or without additional server groups, however in all tests the result was always the same insufficient i_client_move_power.
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
"When the channel admin tries to move the visitor, the result is denied because it informs that the channel admin does not have enough power to be moved."
Channel group permissions are not taken into account on movement ;)
It does not really make any sense, since else the channel admin could move users around the server out/in specific channels.
 

eduardoroeder

Well-known member
Premium User
@Pamonha don't guide yourself via the groups set up. Use the "Permission Overview" (Visão geral das permissões) inside either TS3 or YaTQA so you can see the resulting permissions applied, thus making sure that you actually have the desired permission even if the group is set alright. Sometimes the permission value is getting overrrided by other group or by the channel itself, and then you can't see clearly...

@WolverinDEV it should take in account, since channel groups can be channels where you give temporarily administration power for someone when he is inside, but when he is outside he is just a regular user. I've seen it happens a few times in different servers, but nobody complained about the move power tho.
 

Pamonha

Well-known member
Premium User
As I mentioned, I always work with yatqa to have the greatest freedom to be able to manage groups in the best possible way, as you can see in the image, the configuration is determined with the power to move customers, any customer who is within a group where the necessary power to move is inferior, it just happens that the power is not enough to move it.

As I mentioned earlier, this in groups of channels .. users with or without server roles end up being prevented from being moved.

The test was based on a snapshot of a 1.3.25-beta-6 version of the teaspeak, which was imported into version 1.4.14-beta6. If I create an instance from scratch, I don't have this problem .. So I thought for a moment that it could be a snapshot problem, so I pulled another snapshot from another server in the TeaSpeak-1.3.20-beta-1 version, but the problem persisted .


---- Automatically Merged Double Post ----

@WolverinDEV

I upgraded to a newer version, however I am having similar problems. It is impossible to move users who are in channels, even though I have the power to do so.

In your private, to better understand I sent a video.
 
Last edited:

WolverinDEV

TeaSpeak Team
Staff member
Administrator
//Moved out to normal support due to other users interest

---- Automatically Merged Double Post ----

Okey,
so when I understand this now correctly, this topic will be going about the move semantics.

Which permissions apply how?
Currently (1.4.14-b8 and bellow) I only take into account the i_client_needed_move_power and i_client_move_power power.
I'm going to calculate the global (not including any channel group/client channel permissions) i_client_move_power power and check it against the targets global i_client_needed_move_power.

What are the issues with checking individually the move/needed move power against a channel?
Including channel group/client channel permissions would result in the following scenarios:
But before we come to the scenario I would like to define some elements:
Client A: Client which moves Client B
Client B: Client which gets moved
Channel Admin: Has a i_client_move_power which is higher than Clients B needed move poer
  1. Client A moves B in channel C where he has Channel Admin but client A hasn't Channel Admin for the channel the client is currently in.
    What should TeaSpeak do?
  2. Client A moves B in channel C where he hasn't Channel Admin, but he has Channel Admin for the channel the client is currently in.
    What should TeaSpeak do?
  3. Client A moves B in channel C but he hasn't Channel Admin in Channel C nor the source channel.
    What should TeaSpeak do?
  4. Client A moves B in channel C and he has Channel Admin in Channel C and the source channel.
    What should TeaSpeak do?
Well I could think of a solution which may checks especially for the move power of the source and target channel, and when both permissions (case 4) are granted move the client. But in any other case I will just return a i_client_move_power permission error.
 
Last edited:

n0ns

Well-known member
Premium User
//Moved out to normal support due to other users interest

---- Automatically Merged Double Post ----

Okey,
so when I understand this now correctly, this topic will be going about the move semantics.

Which permissions apply how?
Currently (1.4.14-b8 and bellow) I only take into account the i_client_needed_move_power and i_client_move_power power.
I'm going to calculate the global (not including any channel group/client channel permissions) i_client_move_power power and check it against the targets global i_client_needed_move_power.

What are the issues with checking individually the move/needed move power against a channel?
Including channel group/client channel permissions would result in the following scenarios:
But before we come to the scenario I would like to define some elements:
Client A: Client which moves Client B
Client B: Client which gets moved
Channel Admin: Has a i_client_move_power which is higher than Clients B needed move poer
  1. Client A moves B in channel C where he has Channel Admin but client A hasn't Channel Admin for the channel the client is currently in.
    What should TeaSpeak do?
  2. Client A moves B in channel C where he hasn't Channel Admin, but he has Channel Admin for the channel the client is currently in.
    What should TeaSpeak do?
  3. Client A moves B in channel C but he hasn't Channel Admin in Channel C nor the source channel.
    What should TeaSpeak do?
  4. Client A moves B in channel C and he has Channel Admin in Channel C and the source channel.
    What should TeaSpeak do?
Well I could think of a solution which may checks especially for the move power of the source and target channel, and when both permissions (case 4) are granted move the client. But in any other case I will just return a i_client_move_power permission error.
Considering that Channel Admin is configured with enough power to move client B, the following would be interesting:

Responding to the questioned scenario:

1. Client A can only move client B if client A is within a channel with the assigned or inherited Channel Admin permission.
In this case, client B could be moved to any other channel where client A has Channel Admin assigned or inherited.

2. This should be denied, as customer A does not have an assigned or inherited Channel Admin on the destination channel, where he wants to move the user.
In this case, only an expulsion from the channel / server or a ban on client B should be valid.

3. It should be denied, as customer A does not have Channel Admin on any of the channels.

4. It should allow, as long as customer A is within a channel with Channel Admin permission assigned or inherited.
Thus, client B could be moved between channels from which client A has Channel Admin.


I would also like to report a problem with expelling users from the channel and the server with the Channel Admin permission, whether inherited or not, returns the following error:

"database empty result set"

I recently tested version 1.4.14-beta-8 with this problem mentioned above.
 

Pamonha

Well-known member
Premium User
I did some tests, and unfortunately the problem still persists in the situation of moving.
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Yes because beta 10 failed to build properly.... Since I deleted accidentally my gitlab server I have some issues...
 

Pamonha

Well-known member
Premium User
I saw that the BETA 11 version was just released, but I detected a problem.

When a user has the position of admin of the channel, he is able to pull people who are outside that channel for himself, even if his power is limited only to that channel.

Another thing that he was able to detect was, he is managing to pull, for example, people who have groups of servers that the power needed to move is supposed to be 100, with the channel admin only being able to pull 31.
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Not sure how you managed that, but in general you need a higher or equal i_client_move_power than the target client has (i_client_needed_move_power). This must apply for the source AND target channel.

Maybe set the server in trace mode to get all permission calculations.
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Okey after digging thru a lot of trace log messages... Here is the result:
Code:
[2020-05-13 12:48:45] [TRACE]     2 | [187.11.20.XXX:53560/TeamSpeakUser | 1][Command][Client -> Server] Processing command: clientmove cid='25' cpw clid='3' return_code='1:5'
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 302 of permission b_channel_join_ignore_password returned 1 (Channel group permission)
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 302 of permission b_channel_join_permanent returned 1 (Channel group permission)
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 302 of permission i_channel_join_power returned 55 (Channel group permission)
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 302 of permission b_client_is_sticky returned in no permission.
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 302 of permission i_client_move_power returned 28 (Channel group permission)
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 290 of permission i_client_needed_move_power returned 1 (Channel group permission)
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 302 of permission i_client_move_power returned 28 (Channel group permission)
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 290 of permission i_client_needed_move_power returned 1 (Channel group permission)
[2020-05-13 12:48:45] [TRACE]     2 | [Permission] Calculation for client 302 of permission b_channel_join_ignore_maxclients returned 1 (Channel group permission)
It turns out that the client only needed a move power of one (and 28 is higher than that).
I guess there is some messing up with your permissions ;)

---- Automatically Merged Double Post ----

Any updates?
 
Last edited: