view ui/administratorwindow.h @ 648:e41a2537b84d

Implement root installation We now iterate over all users that do not obviously have their login shell disabled and look for NSS directories in their home directory, dropping our privileges to do so.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 25 Jun 2014 12:44:47 +0200
parents 9db7034b2d6c
children 75cd2fbf9ac6
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=2)
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details.
 */
#ifndef ADMINSTRATORWINDOW_H
#define ADMINSTRATORWINDOW_H

/**
 * @file administratorwindow.h
 * @brief Administrator UI controller
 */

#include <QMainWindow>
#include <QSettings>
#include <QMenuBar>
#include <QTableView>
#include <QPushButton>

#include "certificatelist.h"
#include "certificatetablemodel.h"

class QMenu;
class QAction;

class AdministratorWindow : public QMainWindow
{
    Q_OBJECT

public:
    AdministratorWindow();

    /** @brief obtain a reference to the certificates currently in the model
     * @returns the currently shown certificates
     */
    const QList<Certificate>& certificates() const {
        return certificateModel->certificates();
    }

    /** @brief get the settings for this application
     * @returns a reference the applications settings object
     */
    QSettings* settings() {return &mSettings;}

    /** @brief log the diff between the initial certificate list and the list
     * saved as current.
     *
     * @param currentCerts  Path to the current certificate list file.
     */
    void logChanges(const QString &currentCerts);

    /** @brief get the currently changed certificates.
     * @return a list of certificates.
     */
    QList<Certificate> currentChanges();

private slots:
    void createInstaller();
    void showAbout();
    void loadCertificateFile();
    void saveCertificateFile();
    void addCertificates();
    void removeCertificates();
    void clickedCertificate(const QModelIndex&);

private:
    void createActions();
    void createMenuBar();
    void createContent();
    void loadCertificateTable();
    void addToCertificateTable(const QList<Certificate> &certs);
    QByteArray createLogEntries(const CertificateList &list);

    QSettings mSettings;

    QMenuBar *menuBar;

    QTableView *certificateView;
    CertificateList mCertList;
    CertificateTabelModel *certificateModel;
    QPushButton *saveButton;
    QPushButton *loadButton;
    QPushButton *addButton;
    QPushButton *removeButton;
};

#endif // ADMINSTRATORWINDOW_H

http://wald.intevation.org/projects/trustbridge/