|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/compasssysweb/calendar/CalciumDir39/Operation/ |
Upload File : |
# Copyright 1999-2003, Fred Steinberg, Brown Bear Software
package OperationFactory;
use strict;
use Calendar::Defines;
use Operation::Operation;
my %Operations = (AddEvent => 'None',
AdminAddIns => 'Admin',
AdminAddInsAdmin => 'Admin',
AdminAuditing => 'Admin',
AdminCategories => 'Admin',
AdminColors => 'Admin',
AdminColorsAlternate => 'Admin',
AdminDeleteEvents => 'Admin',
AdminDisplay => 'Admin',
AdminExport => 'View',
AdminFonts => 'Admin',
AdminGeneral => 'Admin',
AdminHeader => 'Admin',
AdminImport => 'Add',
AdminInclude => 'Admin',
AdminMail => 'Admin',
AdminPage => 'Admin',
AdminPageUser => 'View',
AdminSecurity => 'Admin',
AdminSubscriptions => 'Admin',
AdminTimePeriods => 'Admin',
ApproveEvents => 'Edit',
CreateCalendar => 'Admin',
ColorPalette => 'None',
DayView => 'View',
DeleteCalendar => 'Admin',
EmailSelector => 'Add',
EventEditDelete => 'Edit',
EventFilter => 'View',
EventNew => 'Add',
EventReplace => 'Edit',
iCalSubscribe => 'View',
OptionSubscribe => 'View',
PopupWindow => 'View',
PrintView => 'View',
RenameCalendar => 'Admin',
SearchForm => 'View',
SearchPerform => 'View',
SelectCalendar => 'None',
ShowDay => 'View',
ShowIt => 'View',
ShowMultiAddEvent => 'None', # perms checked in there
Splash => 'None',
SysAdminPage => 'Admin',
SysGroups => 'Admin',
SysGroupsOneGroup => 'Admin',
SysGroupsOneCal => 'Admin',
SysMail => 'Admin',
SysMailReminder => 'Admin',
SysMaintenance => 'Admin',
SysSecurity => 'Admin',
SysUsers => 'Admin',
SysUserSecurity => 'Admin',
TextFilter => 'View',
TripleSync => 'None', # perms checked in there
UserLogin => 'None',
UserLogout => 'None',
UserOptions => 'None',
vCalEventExport => 'View'
);
# Create a new Operation, not a new OperationFactory
sub create {
my $factoryClassName = shift;
my ($className, $paramHash, $user) = @_;
$className =~ /^(\w+)$/; # untaint
$className = $1; # it
my $type = $Operations{$className};
return unless $type;
eval "require Operation::$className";
die "Couldn't find Operation::$className\n" if $@;
my $newObject = $className->new ($paramHash, $type, $user);
$newObject;
}
sub getOpType {
my $classname = shift;
my $opName = shift;
die "Bad Operation '$opName' to getOpType()\n" unless $Operations{$opName};
return $Operations{$opName};
}
1;