Let the KeyRequestWindow return a flattened BPasswordKey.
Also provide the keyring string separately instead of abusing the output key message.
This commit is contained in:
committed by
Ryan Leavengood
parent
f16fef70be
commit
90013c82e8
@@ -12,6 +12,7 @@
|
|||||||
#include <GridView.h>
|
#include <GridView.h>
|
||||||
#include <GroupLayout.h>
|
#include <GroupLayout.h>
|
||||||
#include <GroupView.h>
|
#include <GroupView.h>
|
||||||
|
#include <Key.h>
|
||||||
#include <MenuField.h>
|
#include <MenuField.h>
|
||||||
#include <MenuItem.h>
|
#include <MenuItem.h>
|
||||||
#include <NetworkDevice.h>
|
#include <NetworkDevice.h>
|
||||||
@@ -103,21 +104,16 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SetUp(const BMessage& keyMessage)
|
SetUp(const BString& keyringName)
|
||||||
{
|
{
|
||||||
BString keyringName;
|
|
||||||
if (keyMessage.FindString("keyring", &keyringName) == B_OK)
|
|
||||||
fKeyringName->SetText(keyringName);
|
fKeyringName->SetText(keyringName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
status_t
|
||||||
Complete(BMessage& keyMessage)
|
Complete(BMessage& keyMessage)
|
||||||
{
|
{
|
||||||
keyMessage.RemoveName("password");
|
BPasswordKey password(fPassword->Text(), B_KEY_PURPOSE_KEYRING, "");
|
||||||
keyMessage.AddString("password", fPassword->Text());
|
return password.Flatten(keyMessage);
|
||||||
|
|
||||||
keyMessage.RemoveName("persistent");
|
|
||||||
keyMessage.AddBool("persistent", fPersist->Value() != 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -193,9 +189,9 @@ KeyRequestWindow::MessageReceived(BMessage* message)
|
|||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
KeyRequestWindow::RequestKey(BMessage& keyMessage)
|
KeyRequestWindow::RequestKey(const BString& keyringName, BMessage& keyMessage)
|
||||||
{
|
{
|
||||||
fRequestView->SetUp(keyMessage);
|
fRequestView->SetUp(keyringName);
|
||||||
|
|
||||||
CenterOnScreen();
|
CenterOnScreen();
|
||||||
Show();
|
Show();
|
||||||
@@ -204,7 +200,8 @@ KeyRequestWindow::RequestKey(BMessage& keyMessage)
|
|||||||
;
|
;
|
||||||
|
|
||||||
status_t result = fResult;
|
status_t result = fResult;
|
||||||
fRequestView->Complete(keyMessage);
|
if (result == B_OK)
|
||||||
|
result = fRequestView->Complete(keyMessage);
|
||||||
|
|
||||||
LockLooper();
|
LockLooper();
|
||||||
Quit();
|
Quit();
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ virtual void DispatchMessage(BMessage* message,
|
|||||||
BHandler* handler);
|
BHandler* handler);
|
||||||
virtual void MessageReceived(BMessage* message);
|
virtual void MessageReceived(BMessage* message);
|
||||||
|
|
||||||
status_t RequestKey(BMessage& keyMessage);
|
status_t RequestKey(const BString& keyringName,
|
||||||
|
BMessage& keyMessage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
KeyRequestView* fRequestView;
|
KeyRequestView* fRequestView;
|
||||||
|
|||||||
@@ -472,8 +472,7 @@ KeyStoreServer::_AccessKeyring(Keyring& keyring)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// No key, we need to request one from the user.
|
// No key, we need to request one from the user.
|
||||||
keyMessage.AddString("keyring", keyring.Name());
|
status_t result = _RequestKey(keyring.Name(), keyMessage);
|
||||||
status_t result = _RequestKey(keyMessage);
|
|
||||||
if (result != B_OK)
|
if (result != B_OK)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
@@ -482,13 +481,13 @@ KeyStoreServer::_AccessKeyring(Keyring& keyring)
|
|||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
KeyStoreServer::_RequestKey(BMessage& keyMessage)
|
KeyStoreServer::_RequestKey(const BString& keyringName, BMessage& keyMessage)
|
||||||
{
|
{
|
||||||
KeyRequestWindow* requestWindow = new(std::nothrow) KeyRequestWindow();
|
KeyRequestWindow* requestWindow = new(std::nothrow) KeyRequestWindow();
|
||||||
if (requestWindow == NULL)
|
if (requestWindow == NULL)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
return requestWindow->RequestKey(keyMessage);
|
return requestWindow->RequestKey(keyringName, keyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ private:
|
|||||||
|
|
||||||
status_t _AccessKeyring(Keyring& keyring);
|
status_t _AccessKeyring(Keyring& keyring);
|
||||||
|
|
||||||
status_t _RequestKey(BMessage& keyMessage);
|
status_t _RequestKey(const BString& keyringName,
|
||||||
|
BMessage& keyMessage);
|
||||||
|
|
||||||
Keyring* fDefaultKeyring;
|
Keyring* fDefaultKeyring;
|
||||||
KeyringList fKeyrings;
|
KeyringList fKeyrings;
|
||||||
|
|||||||
Reference in New Issue
Block a user