mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
fixed adding friend with short invite
This commit is contained in:
parent
38434f2d55
commit
57a548531c
@ -1360,6 +1360,8 @@ bool p3Peers::parseShortInvite(const std::string& inviteStrUrl, RsPeerDetails& d
|
|||||||
details.hasSignedMe = pgp_det.hasSignedMe;
|
details.hasSignedMe = pgp_det.hasSignedMe;
|
||||||
details.accept_connection = pgp_det.accept_connection;
|
details.accept_connection = pgp_det.accept_connection;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
details.skip_signature_validation = true;
|
||||||
|
|
||||||
return ctx.mOk;
|
return ctx.mOk;
|
||||||
}
|
}
|
||||||
|
@ -129,6 +129,8 @@ ConnectFriendWizard::ConnectFriendWizard(QWidget *parent) :
|
|||||||
body += "\n" + GetStartedDialog::GetCutBelowText();
|
body += "\n" + GetStartedDialog::GetCutBelowText();
|
||||||
body += "\n\n" + QString::fromUtf8(rsPeers->GetRetroshareInvite().c_str());
|
body += "\n\n" + QString::fromUtf8(rsPeers->GetRetroshareInvite().c_str());
|
||||||
|
|
||||||
|
mIsShortInvite = false;
|
||||||
|
|
||||||
std::string advsetting;
|
std::string advsetting;
|
||||||
if(rsConfig->getConfigurationOption(RS_CONFIG_ADVANCED, advsetting) && (advsetting == "YES"))
|
if(rsConfig->getConfigurationOption(RS_CONFIG_ADVANCED, advsetting) && (advsetting == "YES"))
|
||||||
{
|
{
|
||||||
@ -147,14 +149,10 @@ ConnectFriendWizard::ConnectFriendWizard(QWidget *parent) :
|
|||||||
switch (rsFiles->filePermDirectDL())
|
switch (rsFiles->filePermDirectDL())
|
||||||
{
|
{
|
||||||
case RS_FILE_PERM_DIRECT_DL_YES:
|
case RS_FILE_PERM_DIRECT_DL_YES:
|
||||||
// ui->_direct_transfer_CB->setIcon(QIcon(":/icons/warning_yellow_128.png"));
|
|
||||||
// ui->_direct_transfer_CB->setToolTip(ui->_direct_transfer_CB->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to Yes.")));
|
|
||||||
ui->_direct_transfer_CB_2->setIcon(QIcon(":/icons/warning_yellow_128.png"));
|
ui->_direct_transfer_CB_2->setIcon(QIcon(":/icons/warning_yellow_128.png"));
|
||||||
ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to Yes.")));
|
ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to Yes.")));
|
||||||
break ;
|
break ;
|
||||||
case RS_FILE_PERM_DIRECT_DL_NO:
|
case RS_FILE_PERM_DIRECT_DL_NO:
|
||||||
// ui->_direct_transfer_CB->setIcon(QIcon(":/icons/warning_yellow_128.png"));
|
|
||||||
// ui->_direct_transfer_CB->setToolTip(ui->_direct_transfer_CB->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to No.")));
|
|
||||||
ui->_direct_transfer_CB_2->setIcon(QIcon(":/icons/warning_yellow_128.png"));
|
ui->_direct_transfer_CB_2->setIcon(QIcon(":/icons/warning_yellow_128.png"));
|
||||||
ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to No.")));
|
ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to No.")));
|
||||||
break ;
|
break ;
|
||||||
@ -309,6 +307,8 @@ void ConnectFriendWizard::setCertificate(const QString &certificate, bool friend
|
|||||||
}
|
}
|
||||||
else if(rsPeers->parseShortInvite(certificate.toUtf8().constData(),peerDetails))
|
else if(rsPeers->parseShortInvite(certificate.toUtf8().constData(),peerDetails))
|
||||||
{
|
{
|
||||||
|
mIsShortInvite = true;
|
||||||
|
|
||||||
if(peerDetails.id == rsPeers->getOwnId())
|
if(peerDetails.id == rsPeers->getOwnId())
|
||||||
{
|
{
|
||||||
setField("errorMessage", tr("This is your own certificate! You would not want to make friend with yourself. Wouldn't you?") ) ;
|
setField("errorMessage", tr("This is your own certificate! You would not want to make friend with yourself. Wouldn't you?") ) ;
|
||||||
@ -638,7 +638,7 @@ bool ConnectFriendWizard::validateCurrentPage()
|
|||||||
int ConnectFriendWizard::nextId() const
|
int ConnectFriendWizard::nextId() const
|
||||||
{
|
{
|
||||||
switch ((Page) currentId()) {
|
switch ((Page) currentId()) {
|
||||||
case Page_Text:
|
case Page_Text: return Page_Conclusion;
|
||||||
case Page_WebMail:
|
case Page_WebMail:
|
||||||
case Page_ErrorMessage:
|
case Page_ErrorMessage:
|
||||||
case Page_Conclusion:
|
case Page_Conclusion:
|
||||||
@ -676,7 +676,9 @@ void ConnectFriendWizard::accept()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!peerDetails.skip_signature_validation && !mCertificate.empty() && add_key_to_keyring)
|
// add the profile pgp key to keyring
|
||||||
|
|
||||||
|
if(!mIsShortInvite && !mCertificate.empty() && add_key_to_keyring)
|
||||||
{
|
{
|
||||||
RsPgpId pgp_id ;
|
RsPgpId pgp_id ;
|
||||||
RsPeerId ssl_id ;
|
RsPeerId ssl_id ;
|
||||||
@ -691,6 +693,11 @@ void ConnectFriendWizard::accept()
|
|||||||
|
|
||||||
bool runProgressDialog = false;
|
bool runProgressDialog = false;
|
||||||
|
|
||||||
|
// add the peer as friend, either with or without pgp signature validation, depending on whether we have the key or not
|
||||||
|
// Note: that is different than having a short invite or not.
|
||||||
|
|
||||||
|
// first, set data related to profile key.
|
||||||
|
|
||||||
if(accept_connection && !peerDetails.gpg_id.isNull())
|
if(accept_connection && !peerDetails.gpg_id.isNull())
|
||||||
{
|
{
|
||||||
std::cerr << "ConclusionPage::validatePage() accepting GPG key for connection." << std::endl;
|
std::cerr << "ConclusionPage::validatePage() accepting GPG key for connection." << std::endl;
|
||||||
@ -723,6 +730,8 @@ void ConnectFriendWizard::accept()
|
|||||||
rsPeers->assignPeerToGroup(RsNodeGroupId(groupId.toStdString()), peerDetails.gpg_id, true);
|
rsPeers->assignPeerToGroup(RsNodeGroupId(groupId.toStdString()), peerDetails.gpg_id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Then set data related to node location
|
||||||
|
|
||||||
if ((accept_connection) && (!peerDetails.id.isNull()))
|
if ((accept_connection) && (!peerDetails.id.isNull()))
|
||||||
{
|
{
|
||||||
runProgressDialog = true;
|
runProgressDialog = true;
|
||||||
@ -753,9 +762,7 @@ void ConnectFriendWizard::accept()
|
|||||||
rsPeers->setDynDNS(peerDetails.id, peerDetails.dyndns);
|
rsPeers->setDynDNS(peerDetails.id, peerDetails.dyndns);
|
||||||
}
|
}
|
||||||
for(auto&& ipr : peerDetails.ipAddressList)
|
for(auto&& ipr : peerDetails.ipAddressList)
|
||||||
rsPeers->addPeerLocator(
|
rsPeers->addPeerLocator( peerDetails.id, RsUrl(ipr.substr(0, ipr.find(' '))) );
|
||||||
peerDetails.id,
|
|
||||||
RsUrl(ipr.substr(0, ipr.find(' '))) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -768,7 +775,6 @@ void ConnectFriendWizard::accept()
|
|||||||
}
|
}
|
||||||
|
|
||||||
NotifyQt::getInstance()->notifyListChange(NOTIFY_LIST_NEIGHBOURS,1) ;
|
NotifyQt::getInstance()->notifyListChange(NOTIFY_LIST_NEIGHBOURS,1) ;
|
||||||
|
|
||||||
QDialog::accept();
|
QDialog::accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -841,9 +847,8 @@ void ConnectFriendWizard::cleanFriendCert()
|
|||||||
} else {
|
} else {
|
||||||
std::string cleanCert;
|
std::string cleanCert;
|
||||||
int error_code;
|
int error_code;
|
||||||
bool is_short_format;
|
|
||||||
|
|
||||||
if (rsPeers->cleanCertificate(cert, cleanCert, is_short_format, error_code))
|
if (rsPeers->cleanCertificate(cert, cleanCert, mIsShortInvite, error_code))
|
||||||
{
|
{
|
||||||
certValid = true;
|
certValid = true;
|
||||||
|
|
||||||
@ -856,7 +861,7 @@ void ConnectFriendWizard::cleanFriendCert()
|
|||||||
|
|
||||||
ui->friendCertCleanLabel->setStyleSheet("");
|
ui->friendCertCleanLabel->setStyleSheet("");
|
||||||
}
|
}
|
||||||
errorMsg = tr("Valid certificate") + (is_short_format?" (Short format)":" (plain format with profile key)");
|
errorMsg = tr("Valid certificate") + (mIsShortInvite?" (Short format)":" (plain format with profile key)");
|
||||||
|
|
||||||
ui->friendCertCleanLabel->setPixmap(QPixmap(":/images/accepted16.png"));
|
ui->friendCertCleanLabel->setPixmap(QPixmap(":/images/accepted16.png"));
|
||||||
} else {
|
} else {
|
||||||
|
@ -121,6 +121,8 @@ private:
|
|||||||
RsPeerDetails peerDetails;
|
RsPeerDetails peerDetails;
|
||||||
std::string mCertificate;
|
std::string mCertificate;
|
||||||
|
|
||||||
|
bool mIsShortInvite;
|
||||||
|
|
||||||
/* Stylesheet */
|
/* Stylesheet */
|
||||||
QString mBannerPixmap;
|
QString mBannerPixmap;
|
||||||
int mTitleFontSize;
|
int mTitleFontSize;
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1100</width>
|
<width>1139</width>
|
||||||
<height>604</height>
|
<height>1171</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -817,7 +817,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="_direct_transfer_CB_2">
|
<widget class="QCheckBox" name="_direct_transfer_CB_2">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string><html><head/><body><p align="justify">Retroshare periodically checks your friend lists for browsable files matching your transfers, to establish a direct transfer. In this case, your friend knows you're downloading the file.</p><p align="justify">To prevent this behavior for this friend only, uncheck this box. You can still perform a direct transfer if you explicitly ask for it, by e.g. downloading from your friend's file list. This setting is applied to all locations of the same node.</p></body></html></string>
|
<string><html><head/><body><p align="justify">Retroshare periodically checks your friend lists for browsable files matching your transfers, to establish a direct transfer. In this case, your friend knows you're downloading the file.</p><p align="justify">To prevent this behavior for this friend only, uncheck this box. You can still perform a direct transfer if you explicitly ask for it, by e.g. downloading from your friend's file list. This setting is applied to all nodes with the same profile key.</p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Can be used as direct source</string>
|
<string>Can be used as direct source</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user