From dcc90c6b452de7e14e610c699873a97906fb0dad Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 26 Feb 2009 17:05:23 -0800 Subject: [PATCH] Utility script for Message Center install. --- sbin/installNotifications.pl | 161 +++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 sbin/installNotifications.pl diff --git a/sbin/installNotifications.pl b/sbin/installNotifications.pl new file mode 100644 index 000000000..273637080 --- /dev/null +++ b/sbin/installNotifications.pl @@ -0,0 +1,161 @@ +#!/usr/bin/env perl + +#------------------------------------------------------------------- +# Copyright 2009 SDH Corporation. +#------------------------------------------------------------------- + +$|++; # disable output buffering +our ($webguiRoot, $configFile, $help, $man); + +BEGIN { + $webguiRoot = ".."; + unshift (@INC, $webguiRoot."/lib"); +} + +use strict; +use Pod::Usage; +use Getopt::Long; +use WebGUI::Session; +use WebGUI::ProfileField; + +# Get parameters here, including $help +GetOptions( + 'configFile=s' => \$configFile, + 'help' => \$help, + 'man' => \$man, +); + +pod2usage( verbose => 1 ) if $help; +pod2usage( verbose => 2 ) if $man; +pod2usage( msg => "Must specify a config file!" ) unless $configFile; + +my $session = start( $webguiRoot, $configFile ); + +installUserProfileFields($session); +installSettings($session); + +# Do your work here +finish($session); + +#---------------------------------------------------------------------------- +# Your sub here + +sub installUserProfileFields { + my $session = shift; + WebGUI::ProfileField->create( + $session, + 'receiveInboxEmailNotifications', + { + label => q!WebGUI::International::get('receive inbox notifications','Message_Center')!, + visible => 1, + required => 0, + protected => 1, + editable => 1, + fieldType => 'radioList', + dataDefault => 0, + possibleValues => q!{ +message => WebGUI::International::get('full message','Message_Center'), +note => WebGUI::International::get('short notification','Message_Center'), +}!, + }, + 4, + ); + WebGUI::ProfileField->create( + $session, + 'receiveInboxSMSNotifications', + { + label => q!WebGUI::International::get('receive inbox sms','Message_Center')!, + visible => 1, + required => 0, + protected => 1, + editable => 1, + fieldType => 'yesNo', + dataDefault => 0, + }, + 4, + ); +} + +sub installSettings { + my $session = shift; + $session->setting->add('smsGateway', ''); + $session->setting->add('sendInboxNotificationsOnly', ''); +} + +#---------------------------------------------------------------------------- +sub start { + my $webguiRoot = shift; + my $configFile = shift; + my $session = WebGUI::Session->open($webguiRoot,$configFile); + $session->user({userId=>3}); + + ## If your script is adding or changing content you need these lines, otherwise leave them commented + # + # my $versionTag = WebGUI::VersionTag->getWorking($session); + # $versionTag->set({name => 'Name Your Tag'}); + # + ## + + return $session; +} + +#---------------------------------------------------------------------------- +sub finish { + my $session = shift; + + ## If your script is adding or changing content you need these lines, otherwise leave them commented + # + # my $versionTag = WebGUI::VersionTag->getWorking($session); + # $versionTag->commit; + ## + + $session->var->end; + $session->close; +} + +__END__ + + +=head1 NAME + +utility - A template for WebGUI utility scripts + +=head1 SYNOPSIS + + utility --configFile config.conf ... + + utility --help + +=head1 DESCRIPTION + +This WebGUI utility script helps you... + +=head1 ARGUMENTS + +=head1 OPTIONS + +=over + +=item B<--configFile config.conf> + +The WebGUI config file to use. Only the file name needs to be specified, +since it will be looked up inside WebGUI's configuration directory. +This parameter is required. + +=item B<--help> + +Shows a short summary and usage + +=item B<--man> + +Shows this document + +=back + +=head1 AUTHOR + +Copyright 2001-2008 Plain Black Corporation. + +=cut + +#vim:ft=perl