annotate src/auth.cpp @ 14:c1dc1fcee7fe

print zoom.
author pyon@macmini
date Sun, 09 Dec 2018 14:38:15 +0900
parents ae89ce4793d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
1 // Filename : auth.cpp
9
ae89ce4793d8 add satellite-view.
pyon@macmini
parents: 8
diff changeset
2 // Last Change: 2018-10-31 水 10:57:25.
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
3 //
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
4
4
06342fc544e4 mouse gesture.
pyon@macmini
parents: 3
diff changeset
5 #include "id.h"
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
6 #include "auth.h"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
7
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
8 AuthDialog::AuthDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
9 : wxDialog( parent, id, title, pos, size, style )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
10 {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
11 CreateControls();
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
12 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
13
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
14 AuthDialog::~AuthDialog()
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
15 {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
16 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
17
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
18 // Event Table
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
19 BEGIN_EVENT_TABLE( AuthDialog, wxDialog )
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
20 EVT_SHOW( AuthDialog::OnShow )
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
21 EVT_TEXT( ID_UID, AuthDialog::OnCheckUserID )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
22 EVT_TEXT( ID_PW, AuthDialog::OnCheckPassword )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
23 EVT_TEXT_ENTER( ID_UID, AuthDialog::OnEnter )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
24 EVT_TEXT_ENTER( ID_PW, AuthDialog::OnEnter )
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
25 EVT_BUTTON( wxID_OK, AuthDialog::OnEnter )
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
26 END_EVENT_TABLE()
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
27
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
28 // Event Handler
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
29 void AuthDialog::OnShow( wxShowEvent& WXUNUSED(event) )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
30 {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
31 }
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
32
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
33 void AuthDialog::OnCheckUserID( wxCommandEvent& WXUNUSED(event) )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
34 {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
35 wxString id = m_textCtrlId->GetValue();
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
36 for ( int i = 0; i < m_users.GetCount(); i++ ) {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
37 if ( id.IsSameAs( m_users[ i ], true ) ) {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
38 m_staticTextIdmsg->SetLabel( wxT( "ok" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
39 m_staticTextPwmsg->SetLabel( wxT( "← input" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
40 m_textCtrlPw->SetValue( wxEmptyString );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
41 m_textCtrlPw->SetFocus();
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
42 return;
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
43 } else {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
44 m_staticTextIdmsg->SetLabel( wxT( "← input" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
45 m_staticTextPwmsg->SetLabel( wxEmptyString );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
46 }
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
47 }
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
48 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
49
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
50 void AuthDialog::OnCheckPassword( wxCommandEvent& WXUNUSED(event) )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
51 {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
52 wxString pw = m_textCtrlPw->GetValue();
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
53 if ( pw.Len() < 4 ) {
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
54 m_staticTextPwmsg->SetLabel( wxT( "← too short" ) );
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
55 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
56 else {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
57 m_staticTextPwmsg->SetLabel( wxEmptyString );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
58 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
59 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
60
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
61 void AuthDialog::OnEnter( wxCommandEvent& WXUNUSED(event) )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
62 {
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
63 m_staticTextPwmsg->SetLabel( wxEmptyString );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
64 if ( IsValidUser() ) {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
65 m_user = m_textCtrlId->GetValue();
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
66 EndModal( wxID_OK );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
67 }
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
68 m_staticTextPwmsg->SetLabel( wxT( "Bad User/Password !!" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
69 m_textCtrlPw->SelectAll();
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
70 return;
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
71 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
72
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
73 // Functions
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
74 void AuthDialog::CreateControls( void )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
75 {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
76 this->SetIcon( wxIcon( wxT( "sample" ) ) );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
77 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
78 this->SetBackgroundColour( wxColour( 0, 150, 230 ) );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
79
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
80 wxGridSizer* gSizer = new wxGridSizer( 0, 3, 0, 0 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
81
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
82 // user id
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
83 m_staticTextId = new wxStaticText( this, wxID_ANY, wxT( "User ID" ), wxDefaultPosition, wxDefaultSize, 0 );
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
84 gSizer->Add( m_staticTextId, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
85
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
86 m_textCtrlId = new wxTextCtrl( this, ID_UID, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
87 gSizer->Add( m_textCtrlId, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
88
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
89 m_staticTextIdmsg = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
90 m_staticTextIdmsg->SetForegroundColour( wxColour( 250, 0, 0 ) );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
91 gSizer->Add( m_staticTextIdmsg, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
92
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
93 // password
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
94 m_staticTextPw = new wxStaticText( this, wxID_ANY, wxT( "Password" ), wxDefaultPosition, wxDefaultSize, 0 );
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
95 gSizer->Add( m_staticTextPw, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
96
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
97 m_textCtrlPw = new wxTextCtrl( this, ID_PW, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD|wxTE_PROCESS_ENTER );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
98 gSizer->Add( m_textCtrlPw, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
99
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
100 m_staticTextPwmsg = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
101 m_staticTextPwmsg->SetForegroundColour( wxColour( 250, 0, 0 ) );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
102 gSizer->Add( m_staticTextPwmsg, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
103
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
104 // buttons
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
105 gSizer->AddSpacer( 1 );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
106
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
107 m_buttonLogin = new wxButton( this, wxID_OK, wxT( "Login" ), wxDefaultPosition, wxDefaultSize, 0 );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
108 gSizer->Add( m_buttonLogin, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
109
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
110 m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT( "Cancel" ), wxDefaultPosition, wxDefaultSize, 0 );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
111 gSizer->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
112
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
113 this->SetSizer( gSizer );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
114 this->Layout();
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
115 gSizer->Fit( this );
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
116
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
117 this->Centre( wxBOTH );
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
118 m_textCtrlId->SetFocus();
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
119 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
120
6
9a8b581c1993 improve performance.
pyon@macmini
parents: 5
diff changeset
121 bool AuthDialog::LoadDB( void )
9a8b581c1993 improve performance.
pyon@macmini
parents: 5
diff changeset
122 {
5
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
123 wxTextFile file;
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
124 if ( !file.Open( wxT( "auth.db" ) ) ) return false;
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
125 for ( int i = 0; i < file.GetLineCount(); i++ ) {
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
126 wxArrayString line = wxSplit( file.GetLine( i ), ' ', '\\' );
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
127 m_users.Add( line[ 0 ] );
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
128 }
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
129 file.Close();
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
130 return true;
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
131 }
e3b10fb860b3 release v1.0.
pyon@macmini
parents: 4
diff changeset
132
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
133 bool AuthDialog::IsValidUser( void )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
134 {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
135 wxString id = m_textCtrlId->GetValue();
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
136 wxString pw = m_textCtrlPw->GetValue();
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
137
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
138 wxArrayString args;
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
139 args.Add( wxT( "crypto.exe" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
140 args.Add( wxT( "-c" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
141 args.Add( wxT( "auth.db" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
142 args.Add( wxT( "-s" ) );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
143 args.Add( wxT( "@#!;" ) ); // salt
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
144 args.Add( id );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
145 args.Add( pw );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
146
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
147 int ret = wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_SYNC|wxEXEC_HIDE_CONSOLE );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
148 if ( ret == 39 ) return true;
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
149
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
150 return false;
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
151 }
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
152
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
153 void AuthDialog::InDevelop( bool flag )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
154 {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
155 if ( !flag ) return;
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
156 m_textCtrlId->SetValue( "test" );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
157 m_textCtrlPw->SetValue( "test" );
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
158 m_textCtrlPw->SetFocus();
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
159 }
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
160