Changeset 7e2840e


Ignore:
Timestamp:
01/09/14 05:19:43 (12 months ago)
Author:
yurkis <yurkis@…>
Branches:
master, releng/10.0, releng/10.0.1, releng/10.0.2, releng/10.0.3, releng/10.1
Children:
bd61e89
Parents:
9bcb76a
Message:

Update center: add missed code for single instance, add ability to run as regular user (no package handling, no ability to change branch, update set, select jail)

Location:
src-qt4/pc-updatecenter
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-updatecenter/main.cpp

    r3b696abf r7e2840e  
    88#include <unistd.h> 
    99#include <sys/types.h> 
     10 
     11bool checkUserGroup(QString groupName) 
     12{ 
     13   QString loginName = getlogin(); 
     14   QStringList gNames; 
     15   if ( loginName == "root" ) 
     16     return true; 
     17 
     18   QString tmp; 
     19   QFile iFile("/etc/group"); 
     20   if ( ! iFile.open(QIODevice::ReadOnly | QIODevice::Text)) 
     21     return true; //or FALSE? 
     22 
     23   while ( !iFile.atEnd() ) { 
     24     tmp = iFile.readLine().simplified(); 
     25     if ( tmp.indexOf(groupName) == 0 ) { 
     26    gNames = tmp.section(":", 3, 3).split(","); 
     27    break; 
     28     } 
     29   } 
     30   iFile.close(); 
     31 
     32   for ( int i = 0; i < gNames.size(); ++i ) 
     33      if ( gNames.at(i).indexOf(loginName) == 0 ) 
     34            return true; 
     35 
     36   return false; 
     37} 
    1038 
    1139int main(int argc, char *argv[]) 
     
    3967    } 
    4068 
     69    if (a.isRunning() && (!jail.jailEnabled())) 
     70    { 
     71        return !(a.sendMessage("show")); 
     72    } 
     73 
    4174    MainWindow w(pJail); 
     75 
     76    w.show(); 
    4277 
    4378    QObject::connect(&a, SIGNAL(messageReceived(const QString &)), &w, SLOT(slotSingleInstance())); 
    4479 
    45     w.show(); 
     80    //Check for root 
    4681 
    47     //Check for root 
    48     if (0 != geteuid()) 
     82    bool isNotPriv = (0 != geteuid()) && jail.jailEnabled(); 
     83    isNotPriv |= !(checkUserGroup("wheel") || checkUserGroup("operator")); 
     84 
     85    if (isNotPriv) 
    4986    { 
    5087        QMessageBox msg; 
     
    5289        msg.exec(); 
    5390        exit(2); 
    54     } 
     91    }     
    5592     
    5693    return a.exec(); 
  • src-qt4/pc-updatecenter/mainwindow.cpp

    r97f4aeb r7e2840e  
    3232#include "dialogs/patchsetdialog.h" 
    3333 
     34#include <unistd.h> 
    3435#include <QTreeWidgetItem> 
    3536#include <QFile> 
     
    3738#include <QMessageBox> 
    3839#include <QApplication> 
     40 
     41#include <QDebug> 
    3942 
    4043#include "pcbsd-utils.h" 
     
    101104void MainWindow::init() 
    102105{ 
     106    misRegularUser = getuid() != 0; 
     107 
    103108    for (int i=0; i<ui->mainTab->count(); i++) 
    104109    { 
     
    116121    { 
    117122        mSysController.check(); 
    118         mPkgController.check(); 
     123        if (!misRegularUser) 
     124            mPkgController.check(); 
    119125        mPBIController.check(); 
    120126    } 
     
    155161            this, SLOT(slotReturnToHost())); 
    156162 
    157  
    158163    ui->mainStatesStack->setCurrentIndex(MAIN_INDICATORS_IDX); 
     164 
     165    if (misRegularUser) 
     166    { 
     167        ui->pkgIndicator->setVisible(false); 
     168        ui->packagesIndicatorGB->setVisible(false); 
     169        ui->pkgIndictorLine->setVisible(false); 
     170        ui->actionJail->setEnabled(false); 
     171        ui->actionSystem_branches->setEnabled(false); 
     172        ui->actionUpdate_set->setEnabled(false); 
     173    } 
    159174 
    160175} 
     
    207222                  && (mPBIController.currentState() != CAbstractUpdateController::eUPDATING); 
    208223 
    209     ui->actionJail->setEnabled(is_no_upd); 
    210     ui->actionSystem_branches->setEnabled(is_no_upd && (!mJail.jailEnabled())); 
    211     ui->actionUpdate_set->setEnabled(is_no_upd); 
     224    ui->actionJail->setEnabled(is_no_upd && (!misRegularUser)); 
     225    ui->actionSystem_branches->setEnabled(is_no_upd && (!mJail.jailEnabled()) && (!misRegularUser)); 
     226    ui->actionUpdate_set->setEnabled(is_no_upd && (!misRegularUser)); 
    212227    ui->actionExit->setEnabled(is_no_upd); 
    213228} 
     
    215230/////////////////////////////////////////////////////////////////////////////// 
    216231void MainWindow::slotSingleInstance() 
    217 { 
     232{     
    218233    this->hide(); 
    219234    this->showNormal(); 
     235    //setWindowState( (windowState() & ~Qt::WindowMinimized ) | Qt::WindowActive ); 
    220236    this->activateWindow(); 
    221237    this->raise(); 
  • src-qt4/pc-updatecenter/mainwindow.h

    r97f4aeb r7e2840e  
    4242{ 
    4343    Q_OBJECT 
    44      
     44 
    4545public: 
    4646    explicit MainWindow(CJailsBackend* jail=0, QWidget *parent = 0); 
     
    4848 
    4949    void setJail(CJailsBackend jail); 
     50    void setAppFlags(bool isUserMode, bool isLockedJail); 
    5051     
    5152private: 
     
    6263 
    6364    CJailsBackend   mJail; 
     65 
     66    bool misRegularUser; 
    6467 
    6568public slots: 
  • src-qt4/pc-updatecenter/mainwindow.ui

    ra44224a r7e2840e  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>621</width> 
    10     <height>435</height> 
     9    <width>619</width> 
     10    <height>433</height> 
    1111   </rect> 
    1212  </property> 
     
    9191         <widget class="QStackedWidget" name="mainStatesStack"> 
    9292          <property name="currentIndex"> 
    93            <number>0</number> 
     93           <number>1</number> 
    9494          </property> 
    9595          <widget class="QWidget" name="page_5"> 
     
    237237            </item> 
    238238            <item> 
    239              <widget class="QGroupBox" name="groupBox_2"> 
     239             <widget class="QGroupBox" name="packagesIndicatorGB"> 
    240240              <property name="title"> 
    241241               <string>Packages</string> 
     
    249249            </item> 
    250250            <item> 
    251              <widget class="Line" name="line_2"> 
     251             <widget class="Line" name="pkgIndictorLine"> 
    252252              <property name="orientation"> 
    253253               <enum>Qt::Horizontal</enum> 
     
    273273              </property> 
    274274             </widget> 
     275            </item> 
     276            <item> 
     277             <spacer name="verticalSpacer_3"> 
     278              <property name="orientation"> 
     279               <enum>Qt::Vertical</enum> 
     280              </property> 
     281              <property name="sizeHint" stdset="0"> 
     282               <size> 
     283                <width>20</width> 
     284                <height>40</height> 
     285               </size> 
     286              </property> 
     287             </spacer> 
    275288            </item> 
    276289            <item> 
     
    345358     <x>0</x> 
    346359     <y>0</y> 
    347      <width>621</width> 
    348      <height>22</height> 
     360     <width>619</width> 
     361     <height>21</height> 
    349362    </rect> 
    350363   </property> 
Note: See TracChangeset for help on using the changeset viewer.