parent
3f22bb9f23
commit
aa66ac3f39
3 changed files with 137 additions and 0 deletions
@ -0,0 +1,67 @@ |
|||||||
|
#!/usr/bin/perl -wT |
||||||
|
|
||||||
|
# vim: ft=xml ts=4 sw=4 et: |
||||||
|
#---------------------------------------------------------------------- |
||||||
|
# heading : Collaboration |
||||||
|
# description : Logon Script |
||||||
|
# navigation : 2000 2100 |
||||||
|
#---------------------------------------------------------------------- |
||||||
|
#---------------------------------------------------------------------- |
||||||
|
# copyright (C) 2012 Firewall-Services |
||||||
|
# daniel@firewall-services.com |
||||||
|
# |
||||||
|
# This program 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. |
||||||
|
# |
||||||
|
# This program 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 this program; if not, write to the Free Software |
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
||||||
|
# |
||||||
|
#---------------------------------------------------------------------- |
||||||
|
|
||||||
|
use strict; |
||||||
|
use esmith::TestUtils; |
||||||
|
use esmith::FormMagick::Panel::logonscript; |
||||||
|
|
||||||
|
my $fm = esmith::FormMagick::Panel::logonscript->new(); |
||||||
|
|
||||||
|
use CGI; |
||||||
|
my $q = new CGI; |
||||||
|
$fm->display(); |
||||||
|
|
||||||
|
__DATA__ |
||||||
|
<form title="FORM_TITLE" header="/etc/e-smith/web/common/head.tmpl" footer="/etc/e-smith/web/common/foot.tmpl"> |
||||||
|
<page name="First" pre-event="print_status_message()" post-event="save_change()" > |
||||||
|
<description>FIRSTPAGE_DESC</description> |
||||||
|
<field type="select" |
||||||
|
id="homedrive" |
||||||
|
options="'a' => 'A:', 'b' => 'B:', 'c' => 'C:', 'd' => 'D:', |
||||||
|
'e' => 'E:', 'f' => 'F:', 'g' => 'G:', 'h' => 'H:', |
||||||
|
'i' => 'I:', 'j' => 'J:', 'k' => 'K:', 'l' => 'L:', |
||||||
|
'm' => 'M:', 'n' => 'N:', 'o' => 'O:', 'p' => 'P:', |
||||||
|
'q' => 'Q:', 'r' => 'R:', 's' => 'S:', 't' => 'T:', |
||||||
|
'u' => 'U:', 'v' => 'V:', 'w' => 'W:', 'x' => 'X:', |
||||||
|
'y' => 'Y:', 'z' => 'Z:'" |
||||||
|
value="get_prop('smb', 'HomeDrive')"> |
||||||
|
<label>LABEL_HOME_DRIVE</label> |
||||||
|
<description>DESC_HOME_DRIVE</description> |
||||||
|
</field> |
||||||
|
<field type="textarea" |
||||||
|
id="logonscript" |
||||||
|
rows="25" |
||||||
|
cols="70" |
||||||
|
value="read_logonscript()"> |
||||||
|
<label>LABEL_LOGON_SCRIPT</label> |
||||||
|
<description>DESC_LOGON_SCRIPT</description> |
||||||
|
</field> |
||||||
|
<subroutine src="print_button('SAVE')" /> |
||||||
|
</page> |
||||||
|
</form> |
||||||
|
|
@ -0,0 +1,68 @@ |
|||||||
|
#!/usr/bin/perl -w |
||||||
|
|
||||||
|
package esmith::FormMagick::Panel::logonscript; |
||||||
|
|
||||||
|
use strict; |
||||||
|
|
||||||
|
use esmith::FormMagick; |
||||||
|
use esmith::ConfigDB; |
||||||
|
use esmith::cgi; |
||||||
|
use File::Basename; |
||||||
|
use Exporter; |
||||||
|
use Carp; |
||||||
|
|
||||||
|
our @ISA = qw(esmith::FormMagick Exporter); |
||||||
|
|
||||||
|
our @EXPORT = qw( |
||||||
|
read_logon |
||||||
|
save_change |
||||||
|
); |
||||||
|
|
||||||
|
our $c = esmith::ConfigDB->open() || die "Couldn't open config db"; |
||||||
|
|
||||||
|
sub new { |
||||||
|
shift; |
||||||
|
my $self = esmith::FormMagick->new(); |
||||||
|
$self->{calling_package} = (caller)[0]; |
||||||
|
bless $self; |
||||||
|
return $self; |
||||||
|
} |
||||||
|
|
||||||
|
sub get_prop { |
||||||
|
my $self = shift; |
||||||
|
my $item = shift; |
||||||
|
my $prop = shift; |
||||||
|
return ($c->get($item)->prop($prop)); |
||||||
|
} |
||||||
|
|
||||||
|
sub read_logonscript { |
||||||
|
my $self = shift; |
||||||
|
my $ret = ''; |
||||||
|
if (! open (LOGON, "</home/e-smith/files/samba/netlogon/netlogon.template")){ |
||||||
|
$self->error('ERROR_OPEN_FILE','First'); |
||||||
|
return; |
||||||
|
} |
||||||
|
while (<LOGON>){ |
||||||
|
$ret .= $_; |
||||||
|
} |
||||||
|
close LOGON; |
||||||
|
return $ret; |
||||||
|
} |
||||||
|
|
||||||
|
sub save_change { |
||||||
|
my $self = shift; |
||||||
|
my $q = $self->{cgi}; |
||||||
|
my $logon = $q->param('logonscript'); |
||||||
|
my $drive = $q->param('homedrive'); |
||||||
|
if (! open (LOGON, ">/home/e-smith/files/samba/netlogon/netlogon.template")){ |
||||||
|
$self->error('ERROR_OPEN_FILE','First'); |
||||||
|
return; |
||||||
|
} |
||||||
|
print LOGON $logon; |
||||||
|
close LOGON; |
||||||
|
$c->set_prop('smb', 'HomeDrive', $drive); |
||||||
|
unless ( system ("/sbin/e-smith/signal-event", "workgroup-update") == 0 ){ |
||||||
|
return $self->error('ERROR_OCCURED');; |
||||||
|
} |
||||||
|
return $self->success('SUCCESS'); |
||||||
|
} |
Loading…
Reference in new issue