[Amarok] save last.fm credentials in KWallet, rather than i

Casper van Donderen casper.vandonderen at gmail.com
Sat Aug 22 16:10:39 CEST 2009


KWalletd was functional on Vista HP 32-bit for me, in Win7 Ultimate RC
x64 it did not autostart. in the process of compiling KDE from scratch
now.

I would say that #ifdef-ing it would be the way to go for now. But
please write a bug report with the lines of code/filename where the
#ifdef is. For me to keep track of this issue.

Casper

On Sat, Aug 22, 2009 at 7:02 PM, Leo Franchi<lfranchi at kde.org> wrote:
> On Saturday 22 August 2009 06:34:26 Orville Bennett wrote:
>> Maximilian Kossick wrote:
>> > This is broken on OS X. Amarok now asks me for my last.fm
>> > username/password on each startup
>>
>> I think if you link the kwallet (kwalletd?) exe to the path it'll work.
>> It's a wider KDE issue with finding progs in the .apps.
>
> what do you mean if you link the kwallet exe to the path?
>
> kwallet is in kdelibs---is it non-functional on OSX/windows? casper: comments?
>
> leo
>
>
>> > On Sat, Aug 22, 2009 at 6:45 AM, Leo Franchi<lfranchi at kde.org>  wrote:
>> >> commit de46538288b61412c6362999e3da74a7866a9eb3
>> >> Author:     Leo Franchi<lfranchi at kde.org>
>> >> AuthorDate: Sat Aug 22 00:40:39 2009 -0700
>> >> Commit:     Leo Franchi<lfranchi at kde.org>
>> >> CommitDate: Sat Aug 22 00:41:47 2009 -0700
>> >>
>> >>     save last.fm credentials in KWallet, rather than in plaintext in
>> >>     amarokrc.
>> >>
>> >>     will migrate existing username/pw into KWallet silently and remove
>> >> the text entries. we should use kwallet more, services save all sorts of
>> >> private info in amarokrc :( it's really easy...
>> >>
>> >> diff --git a/src/services/lastfm/LastFmServiceConfig.cpp
>> >> b/src/services/lastfm/LastFmServiceConfig.cpp index 42781ef..2224944
>> >> 100644
>> >> --- a/src/services/lastfm/LastFmServiceConfig.cpp
>> >> +++ b/src/services/lastfm/LastFmServiceConfig.cpp
>> >> @@ -19,6 +19,8 @@
>> >>   #include "LastFmServiceConfig.h"
>> >>   #include "Debug.h"
>> >>
>> >> +#include<KWallet/Wallet>
>> >> +
>> >>   LastFmServiceConfig::LastFmServiceConfig()
>> >>   {
>> >>      load();
>> >> @@ -30,8 +32,38 @@ LastFmServiceConfig::load()
>> >>   {
>> >>      debug()<<  "load config";
>> >>      KConfigGroup config = KGlobal::config()->group( configSectionName()
>> >> ); -    m_username = config.readEntry( "username", QString() );
>> >> -    m_password = config.readEntry( "password", QString() );
>> >> +    // delete info from kconfig, as a safety measure
>> >> +
>> >> +    // check the wallet if it exists
>> >> +    KWallet::Wallet* wallet = KWallet::Wallet::openWallet(
>> >> KWallet::Wallet::NetworkWallet(), 0, KWallet::Wallet::Synchronous ); +
>> >>  if( wallet )
>> >> +    {
>> >> +        if( !wallet->hasFolder( "Amarok" ) )
>> >> +            wallet->createFolder( "Amarok" );
>> >> +        // do a one-time transfer
>> >> +        // can remove at some point in the future, post-2.2
>> >> +        wallet->setFolder( "Amarok" );
>> >> +        if( config.hasKey( "password" ) )
>> >> +        {
>> >> +            wallet->writePassword( "lastfm_password", config.readEntry(
>> >> "password" ) ); +            config.deleteEntry( "password" );
>> >> +        }
>> >> +        if( config.hasKey( "username" ) )
>> >> +        {
>> >> +            wallet->writeEntry( "lastfm_username", config.readEntry(
>> >> "username" ).toUtf8() ); +            config.deleteEntry( "username" );
>> >> +        }
>> >> +
>> >> +        if( wallet->readPassword( "lastfm_password", m_password )>  0 )
>> >> +            debug()<<  "Failed to read lastfm password from kwallet!";
>> >> +        QByteArray rawUsername;
>> >> +        if( wallet->readEntry( "lastfm_username", rawUsername )>  0 )
>> >> +            debug()<<  "failed to read last.fm username from kwallet..
>> >> :("; +        else
>> >> +            m_username = QString::fromUtf8( rawUsername );
>> >> +    }
>> >> +    delete wallet;
>> >> +
>> >>      m_sessionKey = config.readEntry( "sessionKey", QString() );
>> >>      m_scrobble = config.readEntry( "scrobble", true );
>> >>      m_fetchSimilar = config.readEntry( "fetchSimilar", true );
>> >> @@ -41,9 +73,20 @@ LastFmServiceConfig::load()
>> >>   void LastFmServiceConfig::save()
>> >>   {
>> >>      debug()<<  "save config";
>> >> +
>> >> +    KWallet::Wallet* wallet = KWallet::Wallet::openWallet(
>> >> KWallet::Wallet::NetworkWallet(), 0, KWallet::Wallet::Synchronous ); +
>> >> +    if( wallet )
>> >> +    {
>> >> +        wallet->setFolder( "Amarok" );
>> >> +        if( wallet->writePassword( "lastfm_password", m_password )>  0
>> >> ) +            debug()<<  "Failed to save last.fm pw to kwallet!"; +
>> >>    if( wallet->writeEntry( "lastfm_username", m_username.toUtf8() )>  0
>> >> ) +            debug()<<  "Failed to save last.fm username to kwallet!";
>> >> +    }
>> >> +    delete wallet;
>> >> +
>> >>      KConfigGroup config = KGlobal::config()->group( configSectionName()
>> >> ); -    config.writeEntry( "username", m_username );
>> >> -    config.writeEntry( "password", m_password );
>> >>      config.writeEntry( "sessionKey", m_sessionKey );
>> >>      config.writeEntry( "scrobble", m_scrobble );
>> >>      config.writeEntry( "fetchSimilar", m_fetchSimilar );
>> >
>> > _______________________________________________
>> > Amarok-devel mailing list
>> > Amarok-devel at kde.org
>> > https://mail.kde.org/mailman/listinfo/amarok-devel
>>
>> _______________________________________________
>> Amarok-devel mailing list
>> Amarok-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/amarok-devel
> _______________________________________________
> Amarok-devel mailing list
> Amarok-devel at kde.org
> https://mail.kde.org/mailman/listinfo/amarok-devel
>


More information about the Amarok-devel mailing list