diff options
author | Angelo Naselli <anaselli@linux.it> | 2014-01-27 18:20:30 +0100 |
---|---|---|
committer | Angelo Naselli <anaselli@linux.it> | 2014-01-27 18:20:30 +0100 |
commit | 1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b (patch) | |
tree | 1363e3d3bdcfa5b2ff3111a41b2c700a5a922140 /AdminPanel/Privileges.pm | |
parent | f519e47d15103514585a272c6308467ac41ce551 (diff) | |
download | manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar.gz manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar.bz2 manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar.xz manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.zip |
Project structure change
Diffstat (limited to 'AdminPanel/Privileges.pm')
-rw-r--r-- | AdminPanel/Privileges.pm | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/AdminPanel/Privileges.pm b/AdminPanel/Privileges.pm deleted file mode 100644 index 73f20984..00000000 --- a/AdminPanel/Privileges.pm +++ /dev/null @@ -1,61 +0,0 @@ -# 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); - -my $wrappers = { "sudo" => "sudo", - "pkit" => "pkexec", - "chlp" => "consolehelper" - }; - -my $wrapper = 0; - -sub require_root_capability { - return $EUID != 0; -} - -sub ask_for_authentication { - my $wrapper_id = shift; - $wrapper = $wrappers->{$wrapper_id} if(defined($wrappers->{$wrapper_id})); - my ($command, @args) = wrap_command($0, @ARGV); - unshift(@args,$command->[1]); - unshift(@args, '-n') if($wrapper_id eq "sudo"); # let sudo die if password is needed - exec { $command->[0] } $command->[1], @args or die ("command %s missing", $command->[0]); -} - -sub wrap_command { - my ($app, @args) = @_; - return ([$wrapper, $app], @args); -} - -sub get_wrapper { - my $id = shift; - return $wrappers->{$id} if(defined($wrappers->{$id})); -} - -1; |