33# python import
44from pydblite import Base
55
6+ # project imports
7+ from ..config import Config
8+
69
710class AgentAuthenticator :
811
@@ -11,6 +14,8 @@ def __init__(self, sides, allowed_teams):
1114 self ._allowed_teams = allowed_teams
1215 self ._create_agent_table ()
1316
17+ self ._allow_duplicate_team_nicknames = Config .config ['general' ].get ('allow_duplicate_team_nicknames' , True )
18+
1419
1520 def _create_agent_table (self ):
1621 agent_table = Base ('agents' , save_to_file = False )
@@ -39,10 +44,18 @@ def join(self, sock, client_team_id, client_agent_id, client_agent_name):
3944 if not self ._allowed_teams or client_team_id in self ._allowed_teams :
4045 r = db (team_id = client_team_id )
4146 if r :
42- side_name = r [0 ]['side_name' ]
43- if client_agent_name in self ._sides [side_name ] and \
44- not db (side_name = side_name , agent_name = client_agent_name ):
45- ins_flag = True
47+ if not self ._allow_duplicate_team_nicknames :
48+ side_name = r [0 ]['side_name' ]
49+ if client_agent_name in self ._sides [side_name ] and \
50+ not db (side_name = side_name , agent_name = client_agent_name ):
51+ ins_flag = True
52+ else :
53+ for side in self ._sides :
54+ side_name = side
55+ if client_agent_name in self ._sides [side_name ] and \
56+ not db (side_name = side_name , agent_name = client_agent_name ):
57+ ins_flag = True
58+ break
4659 else :
4760 side_name = sorted (list (self ._sides .keys ()))[self ._count_joined_teams ]
4861 side_name = self ._allowed_teams .get (client_team_id , side_name )
0 commit comments