mirror of
https://github.com/SWG-Source/src.git
synced 2026-08-04 04:16:02 -04:00
Admin Account Routing Refactor
This commit is contained in:
+7
-3
@@ -10,17 +10,19 @@
|
||||
|
||||
// ======================================================================
|
||||
|
||||
ClientPermissionsMessage::ClientPermissionsMessage(bool canLogin, bool canCreateRegularCharacter, bool canCreateJediCharacter, bool canSkipTutorial) :
|
||||
ClientPermissionsMessage::ClientPermissionsMessage(bool canLogin, bool canCreateRegularCharacter, bool canCreateJediCharacter, bool canSkipTutorial, bool isAdmin) :
|
||||
GameNetworkMessage("ClientPermissionsMessage"),
|
||||
m_canLogin(canLogin),
|
||||
m_canCreateRegularCharacter(canCreateRegularCharacter),
|
||||
m_canCreateJediCharacter(canCreateJediCharacter),
|
||||
m_canSkipTutorial(canSkipTutorial)
|
||||
m_canSkipTutorial(canSkipTutorial),
|
||||
m_isAdmin(isAdmin)
|
||||
{
|
||||
addVariable(m_canLogin);
|
||||
addVariable(m_canCreateRegularCharacter);
|
||||
addVariable(m_canCreateJediCharacter);
|
||||
addVariable(m_canSkipTutorial);
|
||||
addVariable(m_isAdmin);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
@@ -30,12 +32,14 @@ ClientPermissionsMessage::ClientPermissionsMessage(Archive::ReadIterator & sourc
|
||||
m_canLogin(),
|
||||
m_canCreateRegularCharacter(),
|
||||
m_canCreateJediCharacter(),
|
||||
m_canSkipTutorial()
|
||||
m_canSkipTutorial(),
|
||||
m_isAdmin()
|
||||
{
|
||||
addVariable(m_canLogin);
|
||||
addVariable(m_canCreateRegularCharacter);
|
||||
addVariable(m_canCreateJediCharacter);
|
||||
addVariable(m_canSkipTutorial);
|
||||
addVariable(m_isAdmin);
|
||||
|
||||
unpack(source);
|
||||
}
|
||||
|
||||
+10
-1
@@ -24,7 +24,7 @@
|
||||
class ClientPermissionsMessage : public GameNetworkMessage
|
||||
{
|
||||
public:
|
||||
ClientPermissionsMessage(bool canLogin, bool canCreateRegularCharacter, bool canCreateJediCharacter, bool canSkipTutorial);
|
||||
ClientPermissionsMessage(bool canLogin, bool canCreateRegularCharacter, bool canCreateJediCharacter, bool canSkipTutorial, bool isAdmin);
|
||||
explicit ClientPermissionsMessage(Archive::ReadIterator & source);
|
||||
virtual ~ClientPermissionsMessage();
|
||||
|
||||
@@ -33,12 +33,14 @@ class ClientPermissionsMessage : public GameNetworkMessage
|
||||
bool getCanCreateRegularCharacter() const;
|
||||
bool getCanCreateJediCharacter() const;
|
||||
bool getCanSkipTutorial() const;
|
||||
bool getIsAdmin() const;
|
||||
|
||||
private:
|
||||
Archive::AutoVariable<bool> m_canLogin;
|
||||
Archive::AutoVariable<bool> m_canCreateRegularCharacter;
|
||||
Archive::AutoVariable<bool> m_canCreateJediCharacter;
|
||||
Archive::AutoVariable<bool> m_canSkipTutorial;
|
||||
Archive::AutoVariable<bool> m_isAdmin;
|
||||
|
||||
ClientPermissionsMessage();
|
||||
ClientPermissionsMessage(const ClientPermissionsMessage&);
|
||||
@@ -73,6 +75,13 @@ inline bool ClientPermissionsMessage::getCanSkipTutorial() const
|
||||
return m_canSkipTutorial.get();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
inline bool ClientPermissionsMessage::getIsAdmin() const
|
||||
{
|
||||
return m_isAdmin.get();
|
||||
}
|
||||
|
||||
// ======================================================================
|
||||
|
||||
#endif // _INCLUDED_ClientCentralMessages_H
|
||||
|
||||
+15
@@ -31,6 +31,17 @@ struct LoginClusterStatus_ClusterData
|
||||
bool m_dontRecommend;
|
||||
uint32 m_onlinePlayerLimit;
|
||||
uint32 m_onlineFreeTrialLimit;
|
||||
|
||||
// This flag tells the client that the account which requested the cluster information
|
||||
// is considered an admin by the server (in Admin Account Table). This enables connection
|
||||
// to locked clusters and viewing secret clusters. We don't need to worry about this flag
|
||||
// being manipulated because the Connection Server verifies admin permissions after the fact.
|
||||
// This flag merely unblocks client-side user interface elements for locked/secret clusters.
|
||||
// We also send this flag in the ClientPermissionsMessage header for character creation.
|
||||
bool m_isAdmin;
|
||||
// Flag so we can append (Secret) in Client (for admins)
|
||||
bool m_isSecret;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -85,6 +96,8 @@ namespace Archive
|
||||
get(source,c.m_dontRecommend);
|
||||
get(source,c.m_onlinePlayerLimit);
|
||||
get(source,c.m_onlineFreeTrialLimit);
|
||||
get(source, c.m_isAdmin);
|
||||
get(source,c.m_isSecret);
|
||||
}
|
||||
|
||||
inline void put(ByteStream & target, const LoginClusterStatus_ClusterData &c)
|
||||
@@ -101,6 +114,8 @@ namespace Archive
|
||||
put(target,c.m_dontRecommend);
|
||||
put(target,c.m_onlinePlayerLimit);
|
||||
put(target,c.m_onlineFreeTrialLimit);
|
||||
put(target,c.m_isAdmin);
|
||||
put(target,c.m_isSecret);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user