Mercurial > mercurial > hgweb_rsearcher.cgi
view src/auth.cpp @ 8:82f9af6aa7e4
add net.cpp
author | pyon@macmini |
---|---|
date | Tue, 30 Oct 2018 17:26:02 +0900 |
parents | 9a8b581c1993 |
children | ae89ce4793d8 |
line wrap: on
line source
// Filename : auth.cpp // Last Change: 2018-10-29 月 09:09:57. // #include "id.h" #include "auth.h" AuthDialog::AuthDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { CreateControls(); } AuthDialog::~AuthDialog() { } // Event Table BEGIN_EVENT_TABLE( AuthDialog, wxDialog ) EVT_SHOW( AuthDialog::OnShow ) EVT_TEXT( ID_UID, AuthDialog::OnCheckUserID ) EVT_TEXT( ID_PW, AuthDialog::OnCheckPassword ) EVT_TEXT_ENTER( ID_UID, AuthDialog::OnEnter ) EVT_TEXT_ENTER( ID_PW, AuthDialog::OnEnter ) EVT_BUTTON( wxID_OK, AuthDialog::OnEnter ) END_EVENT_TABLE() // Event Handler void AuthDialog::OnShow( wxShowEvent& WXUNUSED(event) ) { } void AuthDialog::OnCheckUserID( wxCommandEvent& WXUNUSED(event) ) { wxString id = m_textCtrlId->GetValue(); for ( int i = 0; i < m_users.GetCount(); i++ ) { if ( id.IsSameAs( m_users[ i ], true ) ) { m_staticTextIdmsg->SetLabel( wxT( "ok" ) ); m_staticTextPwmsg->SetLabel( wxT( "← input" ) ); m_textCtrlPw->SetValue( wxEmptyString ); m_textCtrlPw->SetFocus(); return; } else { m_staticTextIdmsg->SetLabel( wxT( "← input" ) ); m_staticTextPwmsg->SetLabel( wxEmptyString ); } } } void AuthDialog::OnCheckPassword( wxCommandEvent& WXUNUSED(event) ) { wxString pw = m_textCtrlPw->GetValue(); if ( pw.Len() < 4 ) { m_staticTextPwmsg->SetLabel( wxT( "← too short" ) ); } else { m_staticTextPwmsg->SetLabel( wxEmptyString ); } } void AuthDialog::OnEnter( wxCommandEvent& WXUNUSED(event) ) { m_staticTextPwmsg->SetLabel( wxEmptyString ); if ( IsValidUser() ) { m_user = m_textCtrlId->GetValue(); EndModal( wxID_OK ); } m_staticTextPwmsg->SetLabel( wxT( "Bad User/Password !!" ) ); m_textCtrlPw->SelectAll(); return; } // Functions void AuthDialog::CreateControls( void ) { this->SetIcon( wxIcon( wxT( "sample" ) ) ); this->SetSizeHints( wxDefaultSize, wxDefaultSize ); this->SetBackgroundColour( wxColour( 0, 150, 230 ) ); wxGridSizer* gSizer = new wxGridSizer( 0, 3, 0, 0 ); // user id m_staticTextId = new wxStaticText( this, wxID_ANY, wxT( "User ID" ), wxDefaultPosition, wxDefaultSize, 0 ); gSizer->Add( m_staticTextId, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); m_textCtrlId = new wxTextCtrl( this, ID_UID, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER ); gSizer->Add( m_textCtrlId, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_staticTextIdmsg = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextIdmsg->SetForegroundColour( wxColour( 250, 0, 0 ) ); gSizer->Add( m_staticTextIdmsg, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); // password m_staticTextPw = new wxStaticText( this, wxID_ANY, wxT( "Password" ), wxDefaultPosition, wxDefaultSize, 0 ); gSizer->Add( m_staticTextPw, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); m_textCtrlPw = new wxTextCtrl( this, ID_PW, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD|wxTE_PROCESS_ENTER ); gSizer->Add( m_textCtrlPw, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_staticTextPwmsg = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextPwmsg->SetForegroundColour( wxColour( 250, 0, 0 ) ); gSizer->Add( m_staticTextPwmsg, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); // buttons gSizer->AddSpacer( 1 ); m_buttonLogin = new wxButton( this, wxID_OK, wxT( "Login" ), wxDefaultPosition, wxDefaultSize, 0 ); gSizer->Add( m_buttonLogin, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT( "Cancel" ), wxDefaultPosition, wxDefaultSize, 0 ); gSizer->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); this->SetSizer( gSizer ); this->Layout(); gSizer->Fit( this ); this->Centre( wxBOTH ); m_textCtrlId->SetFocus(); } /* bool AuthDialog::GetDB( void ) { // http get ( auth.db, hhs.db, index.db ) wxArrayString args; args.Add( wxT( "client.exe" ) ); args.Add( wxT( "-u" ) ); args.Add( m_server ); wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_SYNC|wxEXEC_HIDE_CONSOLE ); } */ bool AuthDialog::LoadDB( void ) { wxTextFile file; if ( !file.Open( wxT( "auth.db" ) ) ) return false; for ( int i = 0; i < file.GetLineCount(); i++ ) { wxArrayString line = wxSplit( file.GetLine( i ), ' ', '\\' ); m_users.Add( line[ 0 ] ); } file.Close(); return true; } bool AuthDialog::IsValidUser( void ) { wxString id = m_textCtrlId->GetValue(); wxString pw = m_textCtrlPw->GetValue(); wxArrayString args; args.Add( wxT( "crypto.exe" ) ); args.Add( wxT( "-c" ) ); args.Add( wxT( "auth.db" ) ); args.Add( wxT( "-s" ) ); args.Add( wxT( "@#!;" ) ); // salt args.Add( id ); args.Add( pw ); int ret = wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_SYNC|wxEXEC_HIDE_CONSOLE ); if ( ret == 39 ) return true; return false; } void AuthDialog::InDevelop( bool flag ) { if ( !flag ) return; m_textCtrlId->SetValue( "test" ); m_textCtrlPw->SetValue( "test" ); m_textCtrlPw->SetFocus(); }