Changeset f416e9b


Ignore:
Timestamp:
08/30/13 13:13:00 (11 months ago)
Author:
Kris Moore <kris@…>
Branches:
master, 9.2-release, releng/10.0, releng/10.0.1, releng/10.0.2
Children:
9b48476c
Parents:
3d7cbf4
Message:

Change how we set new passwords via the UserManager? GUI, fixes an issue
with the crypt() string only returning 8 chars...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-usermanager/usermanagerback.cpp

    r87d35b7 rf416e9b  
    2828#include <QUrl> 
    2929#include <QFileInfo> 
     30#include <QTemporaryFile> 
    3031 
    3132UserManagerBackend::UserManagerBackend(QString dir) { 
     
    385386                    } 
    386387                    qDebug() << "Changing password: " << userIt->getUsername(); 
    387                     args.clear(); 
     388 
     389                    // Set the new PW 
     390                    QTemporaryFile rfile("/tmp/.XXXXXXXX"); 
     391                    if ( rfile.open() ) { 
     392                      QTextStream stream( &rfile ); 
     393                      stream << userIt->getClearPassword(); 
     394                      rfile.close(); 
     395                    } 
    388396                    if ( ! chroot.isEmpty() ) 
    389                        args << chroot << "chpass"; 
    390                     args << "-p"; 
    391                     args << userIt->getPassword(); 
    392                     args << userIt->getUsername(); 
    393                     if ( ! chroot.isEmpty() ) 
    394                       QProcess::execute("chroot", args); 
    395                     else  
    396                       QProcess::execute("chpass", args); 
     397                      system("cat " + rfile.fileName().toLatin1() + " | chroot " + chroot.toLatin1() + " pw usermod " + userIt->getUsername().toLatin1() + " -h 0 "); 
     398                    else 
     399                      system("cat " + rfile.fileName().toLatin1() + " | pw usermod " + userIt->getUsername().toLatin1() + " -h 0 "); 
     400 
     401                    rfile.remove(); 
    397402                } 
    398403                break; 
    399404            case 2: 
     405            { 
    400406                //Add User 
    401407                qDebug() << "Adding user " << userIt->getUsername(); 
     
    435441                else 
    436442                   QProcess::execute("pw", args); 
    437                  
    438                 args.clear(); 
    439                 if ( ! chroot.isEmpty() ) 
    440                    args << chroot << "chpass"; 
    441                 args << "-p"; 
    442                 args << userIt->getPassword(); 
    443                 args << userIt->getUsername(); 
    444                 if ( ! chroot.isEmpty() ) 
    445                    QProcess::execute("chroot", args); 
    446                 else 
    447                    QProcess::execute("chpass", args); 
     443 
     444                QTemporaryFile nfile("/tmp/.XXXXXXXX"); 
     445                if ( nfile.open() ) { 
     446                  QTextStream stream( &nfile ); 
     447                  stream << userIt->getClearPassword(); 
     448                  nfile.close(); 
     449                } 
     450                if ( ! chroot.isEmpty() ) 
     451                  system("cat " + nfile.fileName().toLatin1() + " | chroot " + chroot.toLatin1() + " pw usermod " + userIt->getUsername().toLatin1() + " -h 0 "); 
     452                else 
     453                  system("cat " + nfile.fileName().toLatin1() + " | pw usermod " + userIt->getUsername().toLatin1() + " -h 0 "); 
     454                nfile.remove(); 
    448455 
    449456                if ( chroot.isEmpty() ) { 
     
    465472 
    466473                break; 
     474            } 
    467475            case 3: 
    468476                //Delete User 
Note: See TracChangeset for help on using the changeset viewer.