diff options
author | Matteo Pasotti <matteo@mageia.org> | 2013-01-03 14:52:29 +0000 |
---|---|---|
committer | Matteo Pasotti <matteo@mageia.org> | 2013-01-03 14:52:29 +0000 |
commit | 47bc60dc1f348b50dd6ee44ca7817caaec76d778 (patch) | |
tree | 0ddfdc2d2ec57d7eeb560926c7659c3957a21e39 /AdminPanel/Privileges.pm | |
parent | f0e218ec8c1dcb3721a93e6a425778cc1567be79 (diff) | |
download | manatools-47bc60dc1f348b50dd6ee44ca7817caaec76d778.tar manatools-47bc60dc1f348b50dd6ee44ca7817caaec76d778.tar.gz manatools-47bc60dc1f348b50dd6ee44ca7817caaec76d778.tar.bz2 manatools-47bc60dc1f348b50dd6ee44ca7817caaec76d778.tar.xz manatools-47bc60dc1f348b50dd6ee44ca7817caaec76d778.zip |
- rename Auth.pm --> Privileges.pm
- moved Privileges module to a dedicated namespace (AdminPanel)
- Privileges module now use English (for readability)
Diffstat (limited to 'AdminPanel/Privileges.pm')
-rw-r--r-- | AdminPanel/Privileges.pm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/AdminPanel/Privileges.pm b/AdminPanel/Privileges.pm new file mode 100644 index 00000000..48a482b8 --- /dev/null +++ b/AdminPanel/Privileges.pm @@ -0,0 +1,45 @@ +# vim: set et ts=4 sw=4: +# Copyright 2012-2013 Matteo Pasotti +# +# This file is part of AdminPanel +# +# AdminPanel is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# AdminPanel is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with AdminPanel. If not, see <http://www.gnu.org/licenses/>. + +package AdminPanel::Privileges; + +use strict; +use warnings; +use diagnostics; +require Exporter; +use base qw(Exporter); +use English qw(-no_match_vars); + +our @EXPORT = qw(require_root_capability + ask_for_authentication); + +sub require_root_capability { + return $EUID != 0; +} + +sub ask_for_authentication { + my ($command, @args) = wrap_command($0, @ARGV); + unshift(@args,$command->[1]); + exec { $command->[0] } $command->[1], @args or die ("command %s missing", $command->[0]); +} + +sub wrap_command { + my $wrapper = "pkexec"; + my ($app, @args) = @_; + return ([$wrapper, $app], @args); +} |