1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// frmPassword.cpp - Change password
//
//////////////////////////////////////////////////////////////////////////
// wxWindows headers
#include <wx/wx.h>
#include <wx/xrc/xmlres.h>
// App headers
#include "pgAdmin3.h"
#include "frm/frmPassword.h"
#include "schema/pgServer.h"
#include "images/connect.pngc"
#define txtCurrent CTRL_TEXT("txtCurrent")
#define txtNew CTRL_TEXT("txtNew")
#define txtConfirm CTRL_TEXT("txtConfirm")
BEGIN_EVENT_TABLE(frmPassword, pgDialog)
EVT_BUTTON (wxID_HELP, frmPassword::OnHelp)
EVT_BUTTON (wxID_OK, frmPassword::OnOK)
EVT_BUTTON (wxID_CANCEL, frmPassword::OnCancel)
END_EVENT_TABLE()
frmPassword::frmPassword(wxFrame *parent, pgObject *obj)
{
SetFont(settings->GetSystemFont());
LoadResource(parent, wxT("frmPassword"));
RestorePosition();
server = obj->GetServer();
// Icon
SetIcon(*connect_png_ico);
}
frmPassword::~frmPassword()
{
SavePosition();
}
void frmPassword::OnHelp(wxCommandEvent &ev)
{
DisplayHelp(wxT("password"), HELP_PGADMIN);
}
void frmPassword::OnOK(wxCommandEvent &event)
{
// Is the old password right?
if (txtCurrent->GetValue() != server->GetPassword())
{
wxLogError(__("Incorrect password!"));
return;
}
// Did we confirm the password OK?
if (txtNew->GetValue() != txtConfirm->GetValue())
{
wxLogError(__("Passwords do not match!"));
return;
}
// Set the new password
if (!server->SetPassword(txtNew->GetValue()))
{
wxLogError(__("The password could not be changed!"));
return;
}
// All must have gone well!
wxLogMessage(__("Password successfully changed!"));
this->Destroy();
}
void frmPassword::OnCancel(wxCommandEvent &event)
{
Destroy();
}
passwordFactory::passwordFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar) : actionFactory(list)
{
mnu->Append(id, _("C&hange Password..."), _("Change your password."));
}
wxWindow *passwordFactory::StartDialog(frmMain *form, pgObject *obj)
{
frmPassword *frm = new frmPassword((pgFrame *)form, obj);
frm->Show();
return 0;
}
bool passwordFactory::CheckEnable(pgObject *obj)
{
if (obj)
{
pgServer *server = obj->GetServer();
return server && server->GetConnected();
}
return false;
}
|