Compare commits
6 Commits
ubuntu/plu
...
upstream/0
Author | SHA1 | Date | |
---|---|---|---|
|
68e7af3f55 | ||
|
b590848671 | ||
|
51dddc2edd | ||
|
0547729af2 | ||
|
5e3eb96167 | ||
|
79a5b525d3 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
build
|
||||
translations/lxqt-policykit
|
||||
|
4
AUTHORS
4
AUTHORS
@ -4,7 +4,7 @@ Upstream Authors:
|
||||
|
||||
Copyright:
|
||||
Copyright (c) 2010-2012 Razor team
|
||||
Copyright (c) 2012-2014 LXQt team
|
||||
Copyright (c) 2012-2016 LXQt team
|
||||
|
||||
License: GPL-2 and LGPL-2.1+
|
||||
License: LGPL-2.1+
|
||||
The full text of the licenses can be found in the 'COPYING' file.
|
||||
|
80
CHANGELOG
Normal file
80
CHANGELOG
Normal file
@ -0,0 +1,80 @@
|
||||
|
||||
lxqt-policykit-0.11.0 / 2016-09-24
|
||||
==================================
|
||||
|
||||
* agentGui: Use default icon
|
||||
* agentGui: Choose current user in identities combo
|
||||
* agentGui: Handle setting the prompt correctly
|
||||
* agent: Handle multiple identities correctly
|
||||
* Update README.md
|
||||
* Fixed typo prefered -> preferred
|
||||
* Add README.md
|
||||
* build: Use external translations
|
||||
* ts-files removal (#21)
|
||||
* Bump year in AUTHORS
|
||||
* Italian translation update
|
||||
* Updated Russian translation Removed ru_RU file
|
||||
* update: lxqt-policykit-agent_hu.ts
|
||||
|
||||
0.10.0 / 2015-10-31
|
||||
===================
|
||||
|
||||
* Update translations
|
||||
* Fix license file
|
||||
* GPL2 not used - removed in AUTHORS Fixed link to Github LXQt issues Fix wording in manpage - 'can be used by others' was nuts for a file under LGPL root license
|
||||
* Add Greek (el) translation
|
||||
* Rename LxQt to LXQt everywhere
|
||||
* Added german translation.
|
||||
* Added missing tr() call.
|
||||
* Handles CMake policy CMP0063
|
||||
* Use the LXQtCompilerSettings CMake module
|
||||
* Adds Runtime install COMPONENT
|
||||
* Use GNUInstallDirs
|
||||
* Removes unneede entries from include_directories()
|
||||
* Uses CMAKE_AUTOUIC
|
||||
* Updates the build system to use the Targets infrastructure
|
||||
* Remove trailing whitespaces
|
||||
* Fix naming and links
|
||||
* Hungarian translation
|
||||
* - Add a choice option for install binary. Some distributions use libexec instead os default usr/bin installs. It defauls to bin
|
||||
|
||||
0.9.0 / 2015-01-19
|
||||
==================
|
||||
|
||||
* File name was ok but language name wasn´t. My mistake.
|
||||
* Makes filename match translation language
|
||||
* Portuguese update
|
||||
* - Unify naming for a unique lxqt. No more suffixes
|
||||
* CMakeLists.txt maintenance.
|
||||
* Uses the new translations cmake modules
|
||||
* Add Russian translation
|
||||
* CMakeLists.txt cleanups
|
||||
|
||||
0.8.0 / 2014-06-28
|
||||
==================
|
||||
|
||||
* Use portable Polkit headers
|
||||
* Deal with a bug in polkit-qt1 cmake file
|
||||
* Choose Qt5 version of PolkitQt when build with Qt5.
|
||||
* Add initial Qt5 support.
|
||||
* Use new LXQt header files.
|
||||
|
||||
0.7.0 / 2014-05-01
|
||||
==================
|
||||
|
||||
* Update AUTHORS and COPYING files
|
||||
* Add CPack rules for creating tarball
|
||||
* Removed CMAKE_SOURCE_DIR usage from CMakeLists.txt
|
||||
* Fix renaming bugs, replacing lxqt-qt with lxde-qt
|
||||
* Finish the crazy razor=>lxqt renaming tasks.
|
||||
* Rename binary to lxqt-policykit-agent and migrate to the latest liblxqt.
|
||||
* Add COPYING and AUTHORS
|
||||
* Fix authentization->authentication misspelling
|
||||
* Trtanslations
|
||||
* Translation support for policykit agent
|
||||
* preliminary manpages primary for razorqt and usefully in venenux
|
||||
* Add build option to make policykit optional, even if installed.
|
||||
* RazorApplication class implemented; all modules ported to this class
|
||||
* Relicense
|
||||
* initial but finally working policykit integration (agent)
|
||||
* initial revision of the policykit integration (non-functional)
|
@ -1,25 +1,27 @@
|
||||
cmake_minimum_required(VERSION 2.8.11)
|
||||
cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
|
||||
project(lxqt-policykit-agent)
|
||||
|
||||
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(POLKIT_AGENT REQUIRED polkit-agent-1)
|
||||
message(STATUS "polkit agent: ${POLKIT_AGENT_INCLUDE_DIRS} ${POLKIT_AGENT_LIBRARIES}")
|
||||
|
||||
set(POLKIT_AGENT_BINARY_DIR "${CMAKE_INSTALL_BINDIR}" CACHE FILEPATH "Directory for install polkit agent")
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
find_package(PolkitQt5-1 REQUIRED)
|
||||
find_package(Qt5Widgets REQUIRED QUIET)
|
||||
find_package(Qt5LinguistTools REQUIRED QUIET)
|
||||
find_package(lxqt REQUIRED QUIET)
|
||||
find_package(qt5xdg REQUIRED QUIET)
|
||||
|
||||
include(${LXQT_USE_FILE})
|
||||
include(${QTXDG_USE_FILE})
|
||||
|
||||
include(LXQtCompilerSettings NO_POLICY_SCOPE)
|
||||
include(LXQtTranslate)
|
||||
|
||||
# Deal with a bug in polkit-qt5
|
||||
@ -37,8 +39,6 @@ message(STATUS " include: ${POLKITQT-1_INCLUDE_DIR}")
|
||||
# pkg-config --cflags glib-2.0
|
||||
# pkg-config --cflags polkit-agent-1
|
||||
include_directories(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/src"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${POLKIT_AGENT_INCLUDE_DIRS}
|
||||
"${POLKITQT-1_INCLUDE_DIR}"
|
||||
)
|
||||
@ -68,31 +68,41 @@ lxqt_translate_ts(lxqt-policykit-agent_QM_FILES
|
||||
${lxqt-policykit-agent_UI}
|
||||
INSTALL_DIR
|
||||
"${LXQT_TRANSLATIONS_DIR}/${PROJECT_NAME}"
|
||||
PULL_TRANSLATIONS
|
||||
${PULL_TRANSLATIONS}
|
||||
CLEAN_TRANSLATIONS
|
||||
${CLEAN_TRANSLATIONS}
|
||||
TRANSLATIONS_REPO
|
||||
${TRANSLATIONS_REPO}
|
||||
TRANSLATIONS_REFSPEC
|
||||
${TRANSLATIONS_REFSPEC}
|
||||
REPO_SUBDIR
|
||||
"lxqt-policykit/${PROJECT_NAME}"
|
||||
)
|
||||
|
||||
lxqt_app_translation_loader(QM_LOADER ${PROJECT_NAME})
|
||||
|
||||
qt5_wrap_ui(lxqt-policykit-agent_UI_CPP ${lxqt-policykit-agent_UI})
|
||||
|
||||
add_executable(lxqt-policykit-agent
|
||||
${lxqt-policykit-agent_SRCS}
|
||||
${lxqt-policykit-agent_MOCS}
|
||||
${lxqt-policykit-agent_UI_CPP}
|
||||
${lxqt-policykit-agent_QM_FILES}
|
||||
${QM_LOADER}
|
||||
)
|
||||
|
||||
target_link_libraries(lxqt-policykit-agent
|
||||
Qt5::Widgets
|
||||
${QTXDG_LIBRARY}
|
||||
${LXQT_LIBRARIES}
|
||||
lxqt
|
||||
${POLKITQT-1_CORE_LIBRARY}
|
||||
${POLKITQT-1_AGENT_LIBRARY}
|
||||
${POLKIT_AGENT_LIBRARIES}
|
||||
)
|
||||
|
||||
# install
|
||||
install(TARGETS lxqt-policykit-agent DESTINATION bin)
|
||||
install(TARGETS
|
||||
lxqt-policykit-agent
|
||||
DESTINATION "${POLKIT_AGENT_BINARY_DIR}"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
# building tarball with CPack -------------------------------------------------
|
||||
include(InstallRequiredSystemLibraries)
|
||||
|
@ -1,9 +1,8 @@
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
@ -23,8 +22,7 @@ specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations
|
||||
below.
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
@ -89,9 +87,9 @@ libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it
|
||||
becomes a de-facto standard. To achieve this, non-free programs must
|
||||
be allowed to use the library. A more frequent case is that a free
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
@ -138,8 +136,8 @@ included without limitation in the term "modification".)
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control
|
||||
compilation and installation of the library.
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
@ -305,10 +303,10 @@ of these things:
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at least
|
||||
three years, to give the same user the materials specified in
|
||||
Subsection 6a, above, for a charge no more than the cost of
|
||||
performing this distribution.
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
@ -386,10 +384,9 @@ all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
@ -407,11 +404,11 @@ be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License
|
||||
may add an explicit geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
55
README.md
Normal file
55
README.md
Normal file
@ -0,0 +1,55 @@
|
||||
# lxqt-policykit
|
||||
|
||||
## Overview
|
||||
|
||||
lxqt-policykit is the polkit authentification agent of LXQt.
|
||||
|
||||
[polkit](https://www.freedesktop.org/wiki/Software/polkit/) is a software framework to handle privileges of processes.
|
||||
In LXQt it is e. g. used to extend the privileges of the GUI tools of [lxqt-admin](https://github.com/lxde/lxqt-admin/). These are launched by a regular user. But in order to apply the settings they deal with root privileges are needed and acquired via polkit.
|
||||
Among the various components of polkit the authentication agent is the one to query the user for credentials by dialogue windows like this one of lxqt-policykit.
|
||||

|
||||
While there's only a single implementation of all other polkit components various different authentication agents are provided by the various desktop environments. Basically these can be used interchangeably, that is lxqt-policykit can be used in an LXDE session or lxpolkit, the authentication agent of LXDE, can be used in an Xfce session. Most of the time it's better to use the implementation provided by a distinct desktop environment as it integrates better, though.
|
||||
|
||||
Technically, lxqt-policykit is just a single binary `lxqt-policykit-agent` which is running as [LXQt Module](https://github.com/lxde/lxqt-session#lxqt-modules) and launching the GUI on demand.
|
||||
|
||||
Note that the naming lxqt-policykit is strictly speaking an anachronism. It refers to Policykit which was the predecessor
|
||||
of polkit. The name wasn't changed when Policykit was replaced by polkit as both provide roughly the same features albeit
|
||||
they are technically different.
|
||||
|
||||
## Installing
|
||||
|
||||
### Compiling sources
|
||||
|
||||
Runtime dependencies are polkit-qt5 and [liblxqt](https://github.com/lxde/liblxqt).
|
||||
Additional build dependencies are CMake and optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository [lxqt-l10n](https://github.com/lxde/lxqt-l10n) so the corresponding dependencies are needed, too. Please refer to this repository's `README.md` for further information.
|
||||
|
||||
Code configuration is handled by CMake. CMake variable `CMAKE_INSTALL_PREFIX` has to be set to `/usr` on most operating systems.
|
||||
|
||||
To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
|
||||
|
||||
### Binary packages
|
||||
|
||||
#### Arch Linux
|
||||
|
||||
The latest release is provided by package `lxqt-policykit` in repository community, the actual master checkout can be
|
||||
compiled by packages `lxqt-policykit-git` from the [AUR](https://aur.archlinux.org).
|
||||
|
||||
#### Debian
|
||||
|
||||
Package `lxqt-policykit` is available in the official repositories as of Debian stretch. For now it is comprising the
|
||||
translations as well but these will probably be outsourced in package `lxqt-policykit-l10n` one day.
|
||||
|
||||
#### Fedora
|
||||
|
||||
Package `lxqt-policykit` is available as of Fedora 22.
|
||||
|
||||
#### openSUSE
|
||||
|
||||
Package `lxqt-policykit` is providing the binary, `lxqt-policykit-lang` the translations. Both are available as of
|
||||
openSUSE Leap 42.1.
|
||||
|
||||
## Configuration, Usage
|
||||
|
||||
Like all LXQt Modules `lxqt-policykit-agent` can be adjusted from section "Basic Settings" in configuration dialogue [LXQt Session Settings](https://github.com/lxde/lxqt-session#lxqt-session-settings) of [lxqt-session](https://github.com/lxde/lxqt-session).
|
||||
|
||||
From a user's point of view the usage is limited to interacting with the GUI as seen above.
|
BIN
lxqt-policykit_gui.png
Normal file
BIN
lxqt-policykit_gui.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -1,18 +1,18 @@
|
||||
.TH lxqt-policykit-agent "1" "September 2012" "LxQt\-qt\ 0.5.0" "LxQt\-Qt\ Module"
|
||||
.TH lxqt-policykit-agent "1" "September 2012" "LXQt\ 0.5.0" "LXQt\ Module"
|
||||
.SH NAME
|
||||
lxqt-policykit-agent \- Polkit agent for \fBLXDE-Qt\fR: the faster and lighter QT Desktop Environment
|
||||
lxqt-policykit-agent \- Polkit agent for \fBLXQt\fR: the faster and lighter QT Desktop Environment
|
||||
.SH SYNOPSIS
|
||||
.B lxqt-policykit-agent
|
||||
[\fICurrently No command line arguments\fR]
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
This module handles policykit for \fBLXDE-Qt\fR. The polkit module, will perform
|
||||
This module handles policykit for \fBLXQt\fR. The polkit module, will perform
|
||||
security tast over scale action privilegies.
|
||||
.P
|
||||
The \fBLXDE-Qt modules\fR are desktop independent tools,
|
||||
The \fBLXQt modules\fR are desktop independent tools,
|
||||
and operate as daemons for the local user for desktop specific operations.
|
||||
.P
|
||||
\fBLXDE-Qt\fR is an advanced, easy-to-use, and fast desktop environment based on Qt
|
||||
\fBLXQt\fR is an advanced, easy-to-use, and fast desktop environment based on Qt
|
||||
technologies, ships several core desktop components, all of which are optional:
|
||||
.P
|
||||
* Panel
|
||||
@ -25,28 +25,28 @@ technologies, ships several core desktop components, all of which are optional:
|
||||
.P
|
||||
These components perform similar actions to those available in other desktop
|
||||
environments, and their name is self-descriptive. They are usually not launched
|
||||
by hand but automatically, when choosing a LxQt\-Qt session in the Display
|
||||
by hand but automatically, when choosing a LXQt\-Qt session in the Display
|
||||
Manager.
|
||||
.SH BEHAVIOR
|
||||
The module detected on shares privilege escalation, and maintain a security dialog
|
||||
that ask for the user's key need for action.
|
||||
.SH AUTOSTART
|
||||
The module only are showed on \fBLXDE-Qt\fR desktop, but u can create an autostart action
|
||||
for u prefered desktop environment.
|
||||
The module only are showed on \fBLXQt\fR desktop, but u can create an autostart action
|
||||
for u preferred desktop environment.
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to https://github.com/LXDE-Qt/LXDE-Qt/issues
|
||||
Report bugs to https://github.com/lxde/lxqt/issues
|
||||
.SH "SEE ALSO"
|
||||
\fBLXDE-Qt\fR it has been tailored for users who value simplicity, speed, and
|
||||
\fBLXQt\fR it has been tailored for users who value simplicity, speed, and
|
||||
an intuitive interface, also intended for less powerful machines. See:
|
||||
|
||||
.\" any module must refers to session app, for more info on start it
|
||||
.P
|
||||
\fBlxqt-session.1\fR LXDE-Qt for manage LXDE-Qt complete environment
|
||||
\fBlxqt-session.1\fR LXQt for manage LXQt complete environment
|
||||
.P
|
||||
\fBstart-lxqt.1\fR LXDE-Qt display management independient starup.
|
||||
\fBstart-lxqt.1\fR LXQt display management independient starup.
|
||||
.P
|
||||
\fBlxqt-config-session.1\fR LXDE-Qt application for performing session autostart applications
|
||||
\fBlxqt-config-session.1\fR LXQt application for performing session autostart applications
|
||||
.P
|
||||
.SH AUTHOR
|
||||
This manual page was created by \fBPICCORO Lenz McKAY\fR \fI<mckaygerhard@gmail.com>\fR
|
||||
for \fBLXDE-Qt\fR project and VENENUX GNU/Linux but can be used by others.
|
||||
for \fBLXQt\fR project and VENENUX GNU/Linux.
|
||||
|
@ -40,10 +40,10 @@ int main(int argc, char *argv[])
|
||||
g_type_init();
|
||||
#endif
|
||||
|
||||
LxQt::Application app(argc, argv);
|
||||
|
||||
LXQt::Application app(argc, argv);
|
||||
|
||||
app.setQuitOnLastWindowClosed(false);
|
||||
|
||||
LxQtPolicykit::PolicykitAgent agent;
|
||||
LXQtPolicykit::PolicykitAgent agent;
|
||||
return app.exec();
|
||||
}
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include "policykitagentgui.h"
|
||||
|
||||
|
||||
namespace LxQtPolicykit
|
||||
namespace LXQtPolicykit
|
||||
{
|
||||
|
||||
PolicykitAgent::PolicykitAgent(QObject *parent)
|
||||
@ -68,7 +68,7 @@ void PolicykitAgent::initiateAuthentication(const QString &actionId,
|
||||
{
|
||||
if (m_inProgress)
|
||||
{
|
||||
QMessageBox::information(0, tr("PolicyKit Information"), "Another authentization in progress. Please try it again later");
|
||||
QMessageBox::information(0, tr("PolicyKit Information"), tr("Another authentization in progress. Please try it again later."));
|
||||
return;
|
||||
}
|
||||
m_inProgress = true;
|
||||
@ -116,27 +116,36 @@ void PolicykitAgent::request(const QString &request, bool echo)
|
||||
|
||||
PolkitQt1::Identity identity = m_SessionIdentity[session];
|
||||
m_gui->setPrompt(identity, request, echo);
|
||||
if (m_gui->exec())
|
||||
session->setResponse(m_gui->response());
|
||||
else
|
||||
session->setResponse("");
|
||||
connect(m_gui, &QDialog::finished, [this, session] (int result)
|
||||
{
|
||||
if (result == QDialog::Accepted && m_gui->identity() == m_SessionIdentity[session].toString())
|
||||
session->setResponse(m_gui->response());
|
||||
else
|
||||
session->cancel();
|
||||
});
|
||||
m_gui->show();
|
||||
}
|
||||
|
||||
void PolicykitAgent::completed(bool gainedAuthorization)
|
||||
{
|
||||
PolkitQt1::Agent::Session * session = qobject_cast<PolkitQt1::Agent::Session *>(sender());
|
||||
Q_ASSERT(session);
|
||||
Q_ASSERT(m_gui);
|
||||
|
||||
if (!gainedAuthorization)
|
||||
if (m_gui->identity() == m_SessionIdentity[session].toString())
|
||||
{
|
||||
QMessageBox::information(0, tr("Authorization Failed"), tr("Authorization failed for some reason"));
|
||||
if (!gainedAuthorization)
|
||||
{
|
||||
QMessageBox::information(0, tr("Authorization Failed"), tr("Authorization failed for some reason"));
|
||||
}
|
||||
|
||||
// Note: the setCompleted() must be called exacly once (as the
|
||||
// AsyncResult is shared by all the sessions)
|
||||
session->result()->setCompleted();
|
||||
m_inProgress = false;
|
||||
}
|
||||
|
||||
session->result()->setCompleted();
|
||||
|
||||
delete session;
|
||||
|
||||
m_inProgress = false;
|
||||
}
|
||||
|
||||
void PolicykitAgent::showError(const QString &text)
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <QApplication>
|
||||
#include <QHash>
|
||||
|
||||
namespace LxQtPolicykit
|
||||
namespace LXQtPolicykit
|
||||
{
|
||||
|
||||
class PolicykitAgentGUI;
|
||||
|
@ -24,11 +24,12 @@
|
||||
* Boston, MA 02110-1301 USA
|
||||
*
|
||||
* END_COMMON_COPYRIGHT_HEADER */
|
||||
|
||||
#include <XdgIcon>
|
||||
#include "policykitagentgui.h"
|
||||
|
||||
namespace LxQtPolicykit
|
||||
#include <QIcon>
|
||||
#include "policykitagentgui.h"
|
||||
#include <unistd.h>
|
||||
|
||||
namespace LXQtPolicykit
|
||||
{
|
||||
|
||||
|
||||
@ -44,30 +45,47 @@ PolicykitAgentGUI::PolicykitAgentGUI(const QString &actionId,
|
||||
Q_UNUSED(details); // it seems too confusing for end user (=me)
|
||||
|
||||
messageLabel->setText(message);
|
||||
iconLabel->setPixmap(XdgIcon::fromTheme(iconName).pixmap(64, 64));
|
||||
|
||||
QIcon icon = QIcon::fromTheme(iconName);
|
||||
if (icon.isNull())
|
||||
icon = QIcon::fromTheme(QLatin1String("dialog-question"));
|
||||
iconLabel->setPixmap(icon.pixmap(64, 64));
|
||||
|
||||
const uid_t current_uid = getuid();
|
||||
int current_user_index = -1;
|
||||
foreach (PolkitQt1::Identity identity, identities)
|
||||
{
|
||||
m_identityMap[identity.toString()] = identity;
|
||||
const int i = identityComboBox->count(); // index of the added item
|
||||
identityComboBox->addItem(identity.toString());
|
||||
PolkitQt1::UnixUserIdentity const * const u_id = static_cast<PolkitQt1::UnixUserIdentity *>(&identity);
|
||||
if (u_id != nullptr && u_id->uid() == current_uid)
|
||||
current_user_index = i;
|
||||
}
|
||||
if (current_user_index != -1)
|
||||
identityComboBox->setCurrentIndex(current_user_index);
|
||||
connect(identityComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &PolicykitAgentGUI::onIdentityChanged);
|
||||
passwordEdit->setFocus(Qt::OtherFocusReason);
|
||||
}
|
||||
|
||||
void PolicykitAgentGUI::setPrompt(const PolkitQt1::Identity &identity, const QString &text, bool echo)
|
||||
{
|
||||
int ix = identityComboBox->findText(identity.toString());
|
||||
const int ix = identityComboBox->findText(identity.toString());
|
||||
if (ix != -1)
|
||||
{
|
||||
identityComboBox->setCurrentIndex(ix);
|
||||
passwordEdit->setFocus(Qt::OtherFocusReason);
|
||||
identityComboBox->setItemData(ix, text, RolePromptText);
|
||||
identityComboBox->setItemData(ix, echo, RolePromptEcho);
|
||||
|
||||
if (ix == identityComboBox->currentIndex())
|
||||
{
|
||||
promptLabel->setText(text);
|
||||
passwordEdit->setEchoMode(echo ? QLineEdit::Normal : QLineEdit::Password);
|
||||
}
|
||||
}
|
||||
promptLabel->setText(text);
|
||||
passwordEdit->setEchoMode(echo ? QLineEdit::Normal : QLineEdit::Password);
|
||||
}
|
||||
|
||||
PolkitQt1::Identity PolicykitAgentGUI::identity()
|
||||
QString PolicykitAgentGUI::identity()
|
||||
{
|
||||
return m_identityMap[identityComboBox->currentText()];
|
||||
Q_ASSERT(identityComboBox->currentIndex() != -1);
|
||||
return identityComboBox->currentText();
|
||||
}
|
||||
|
||||
QString PolicykitAgentGUI::response()
|
||||
@ -75,4 +93,14 @@ QString PolicykitAgentGUI::response()
|
||||
return passwordEdit->text();
|
||||
}
|
||||
|
||||
void PolicykitAgentGUI::onIdentityChanged(int index)
|
||||
{
|
||||
QVariant text = identityComboBox->itemData(index, RolePromptText);
|
||||
QVariant echo = identityComboBox->itemData(index, RolePromptEcho);
|
||||
if (text != QVariant{})
|
||||
promptLabel->setText(text.toString());
|
||||
if (echo != QVariant{})
|
||||
passwordEdit->setEchoMode(echo.toBool() ? QLineEdit::Normal : QLineEdit::Password);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
@ -33,13 +33,20 @@
|
||||
|
||||
#include "ui_policykitagentgui.h"
|
||||
|
||||
namespace LxQtPolicykit
|
||||
namespace LXQtPolicykit
|
||||
{
|
||||
|
||||
class PolicykitAgentGUI : public QDialog, public Ui::PolicykitAgentGUI
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
enum DataRoles
|
||||
{
|
||||
RolePromptText = Qt::UserRole
|
||||
, RolePromptEcho
|
||||
};
|
||||
|
||||
public:
|
||||
PolicykitAgentGUI(const QString &actionId,
|
||||
const QString &message,
|
||||
@ -48,11 +55,14 @@ public:
|
||||
const PolkitQt1::Identity::List &identities);
|
||||
|
||||
void setPrompt(const PolkitQt1::Identity &identity, const QString &text, bool echo);
|
||||
PolkitQt1::Identity identity();
|
||||
/*! \brief Returns currently selected identity (serialized by toString())
|
||||
*/
|
||||
QString identity();
|
||||
QString response();
|
||||
|
||||
private:
|
||||
QHash<QString,PolkitQt1::Identity> m_identityMap;
|
||||
public slots:
|
||||
void onIdentityChanged(int index);
|
||||
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="en_US">
|
||||
<context>
|
||||
<name>PolicykitAgentGUI</name>
|
||||
<message>
|
||||
<source>Authentication Required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Identity:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Password:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQtPolicykit::PolicykitAgent</name>
|
||||
<message>
|
||||
<source>PolicyKit Information</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization failed for some reason</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PolicyKit Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="pt">
|
||||
<context>
|
||||
<name>PolicykitAgentGUI</name>
|
||||
<message>
|
||||
<source>Authentication Required</source>
|
||||
<translation>Requer autenticação</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Identity:</source>
|
||||
<translation>Identidade:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Password:</source>
|
||||
<translation>Senha:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQtPolicykit::PolicykitAgent</name>
|
||||
<message>
|
||||
<source>PolicyKit Information</source>
|
||||
<translation>Informaçoes PolicyKit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization Failed</source>
|
||||
<translation>Falha de autenticação</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization failed for some reason</source>
|
||||
<translation>A autenticação falhou por alguma razão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PolicyKit Error</source>
|
||||
<translation>Erro PolicyKit</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="ru">
|
||||
<context>
|
||||
<name>LxQtPolicykit::PolicykitAgent</name>
|
||||
<message>
|
||||
<source>PolicyKit Information</source>
|
||||
<translation>Информация PolicyKit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization Failed</source>
|
||||
<translation>Авторизация не удалась</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization failed for some reason</source>
|
||||
<translation>Авторизация не удалась по какой-то причине</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PolicyKit Error</source>
|
||||
<translation>Ошибка PolicyKit</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicykitAgentGUI</name>
|
||||
<message>
|
||||
<source>Authentication Required</source>
|
||||
<translation>Требуется аутентификация</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Identity:</source>
|
||||
<translation>Идентификация:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Password:</source>
|
||||
<translation>Пароль:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="ru_RU">
|
||||
<context>
|
||||
<name>LxQtPolicykit::PolicykitAgent</name>
|
||||
<message>
|
||||
<source>PolicyKit Information</source>
|
||||
<translation>Информация PolicyKit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization Failed</source>
|
||||
<translation>Авторизация не удалась</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Authorization failed for some reason</source>
|
||||
<translation>Авторизация не удалась по какой-то причине</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PolicyKit Error</source>
|
||||
<translation>Ошибка PolicyKit</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicykitAgentGUI</name>
|
||||
<message>
|
||||
<source>Authentication Required</source>
|
||||
<translation>Требуется аутентификация</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Identity:</source>
|
||||
<translation>Идентификация:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Password:</source>
|
||||
<translation>Пароль:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
Loading…
x
Reference in New Issue
Block a user