Deprecate hardcoded string-based authentication, add AUTH packet (#489)
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									3cac877378
								
							
						
					
					
						commit
						e4483719d4
					
				@ -87,6 +87,7 @@ public:
 | 
				
			|||||||
  bool effects_enabled = false;
 | 
					  bool effects_enabled = false;
 | 
				
			||||||
  bool y_offset_enabled = false;
 | 
					  bool y_offset_enabled = false;
 | 
				
			||||||
  bool expanded_desk_mods_enabled = false;
 | 
					  bool expanded_desk_mods_enabled = false;
 | 
				
			||||||
 | 
					  bool auth_packet_enabled = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ///////////////loading info///////////////////
 | 
					  ///////////////loading info///////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -312,6 +312,8 @@ public:
 | 
				
			|||||||
  // Truncates text so it fits within theme-specified boundaries and sets the tooltip to the full string
 | 
					  // Truncates text so it fits within theme-specified boundaries and sets the tooltip to the full string
 | 
				
			||||||
  void truncate_label_text(QWidget* p_widget, QString p_identifier);
 | 
					  void truncate_label_text(QWidget* p_widget, QString p_identifier);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void on_authentication_state_received(int p_state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ~Courtroom();
 | 
					  ~Courtroom();
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  AOApplication *ao_app;
 | 
					  AOApplication *ao_app;
 | 
				
			||||||
 | 
				
			|||||||
@ -1634,15 +1634,30 @@ void Courtroom::append_server_chatmessage(QString p_name, QString p_message,
 | 
				
			|||||||
    color =
 | 
					    color =
 | 
				
			||||||
        ao_app->get_color("server_chatlog_sender_color", "courtroom_fonts.ini")
 | 
					        ao_app->get_color("server_chatlog_sender_color", "courtroom_fonts.ini")
 | 
				
			||||||
            .name();
 | 
					            .name();
 | 
				
			||||||
  if (p_message == "Logged in as a moderator.") {
 | 
					  if (!ao_app->auth_packet_enabled && p_message == "Logged in as a moderator.") {
 | 
				
			||||||
    ui_guard->show();
 | 
					    // Emulate successful authentication
 | 
				
			||||||
    append_server_chatmessage(
 | 
					    on_authentication_state_received(1);
 | 
				
			||||||
        tr("CLIENT"), tr("You were granted the Disable Modcalls button."), "1");
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_server_chatlog->append_chatmessage(p_name, p_message, color);
 | 
					  ui_server_chatlog->append_chatmessage(p_name, p_message, color);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Courtroom::on_authentication_state_received(int p_state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (p_state >= 1) {
 | 
				
			||||||
 | 
					    ui_guard->show();
 | 
				
			||||||
 | 
					    append_server_chatmessage(tr("CLIENT"), tr("You were granted the Disable Modcalls button."), "1");
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else if (p_state == 0) {
 | 
				
			||||||
 | 
					    append_server_chatmessage(tr("CLIENT"), tr("Login unsuccessful."), "1");
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else if (p_state < 0) {
 | 
				
			||||||
 | 
					    ui_guard->hide();
 | 
				
			||||||
 | 
					    append_server_chatmessage(tr("CLIENT"), tr("You were logged out."), "1");
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_chat_return_pressed()
 | 
					void Courtroom::on_chat_return_pressed()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (is_muted)
 | 
					  if (is_muted)
 | 
				
			||||||
 | 
				
			|||||||
@ -199,6 +199,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
    additive_enabled = false;
 | 
					    additive_enabled = false;
 | 
				
			||||||
    effects_enabled = false;
 | 
					    effects_enabled = false;
 | 
				
			||||||
    expanded_desk_mods_enabled = false;
 | 
					    expanded_desk_mods_enabled = false;
 | 
				
			||||||
 | 
					    auth_packet_enabled = false;
 | 
				
			||||||
    if (f_packet.contains("yellowtext", Qt::CaseInsensitive))
 | 
					    if (f_packet.contains("yellowtext", Qt::CaseInsensitive))
 | 
				
			||||||
      yellow_text_enabled = true;
 | 
					      yellow_text_enabled = true;
 | 
				
			||||||
    if (f_packet.contains("prezoom", Qt::CaseInsensitive))
 | 
					    if (f_packet.contains("prezoom", Qt::CaseInsensitive))
 | 
				
			||||||
@ -229,6 +230,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
        y_offset_enabled = true;
 | 
					        y_offset_enabled = true;
 | 
				
			||||||
    if (f_packet.contains("expanded_desk_mods", Qt::CaseInsensitive))
 | 
					    if (f_packet.contains("expanded_desk_mods", Qt::CaseInsensitive))
 | 
				
			||||||
      expanded_desk_mods_enabled = true;
 | 
					      expanded_desk_mods_enabled = true;
 | 
				
			||||||
 | 
					    if (f_packet.contains("auth_packet", Qt::CaseInsensitive))
 | 
				
			||||||
 | 
					      auth_packet_enabled = true;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else if (header == "PN") {
 | 
					  else if (header == "PN") {
 | 
				
			||||||
    if (f_contents.size() < 2)
 | 
					    if (f_contents.size() < 2)
 | 
				
			||||||
@ -683,6 +686,14 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
    if (f_contents.size() > 1 && f_contents.at(1) == "1")
 | 
					    if (f_contents.size() > 1 && f_contents.at(1) == "1")
 | 
				
			||||||
      w_courtroom->on_reload_theme_clicked();
 | 
					      w_courtroom->on_reload_theme_clicked();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  // Auth packet
 | 
				
			||||||
 | 
					  else if (header == "AUTH") {
 | 
				
			||||||
 | 
					    if (!courtroom_constructed || !auth_packet_enabled || f_contents.size() < 1)
 | 
				
			||||||
 | 
					      goto end;
 | 
				
			||||||
 | 
					    int authenticated = f_contents.at(0).toInt();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    w_courtroom->on_authentication_state_received(authenticated);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
end:
 | 
					end:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user