add: Ability to specify which group can use individual admin console items
This commit is contained in:
parent
f6cab15bd0
commit
58ac54b81d
29 changed files with 1227 additions and 488 deletions
|
|
@ -69,13 +69,24 @@ sub _formatFunction {
|
|||
$url = $self->session->url->page("op=".$function->{op});
|
||||
}
|
||||
my $i18n = WebGUI::International->new($self->session);
|
||||
|
||||
# Determine if the user can use this control
|
||||
my $canUse = 0;
|
||||
if ($function->{class} && $function->{class}->can('canView')) {
|
||||
eval { require $function->{class}; };
|
||||
$canUse = $function->{class}->can('canView')->($self->session);
|
||||
}
|
||||
else {
|
||||
$canUse = $self->session->user->isInGroup( $function->{group} );
|
||||
}
|
||||
|
||||
return {
|
||||
title=>$i18n->get($function->{title}{id}, $function->{title}{namespace}),
|
||||
icon=>$self->session->url->extras("/adminConsole/".$function->{icon}),
|
||||
'icon.small'=>$self->session->url->extras("adminConsole/small/".$function->{icon}),
|
||||
url=>$url,
|
||||
canUse=>$self->session->user->isInGroup($function->{group}),
|
||||
isCurrentOpFunc=>($self->session->form->process("op") eq $function->{op} || $self->session->form->process("func") eq $function->{func})
|
||||
title => $i18n->get($function->{title}{id}, $function->{title}{namespace}),
|
||||
icon => $self->session->url->extras("/adminConsole/".$function->{icon}),
|
||||
'icon.small' => $self->session->url->extras("adminConsole/small/".$function->{icon}),
|
||||
url => $url,
|
||||
canUse => $canUse,
|
||||
isCurrentOpFunc => ($self->session->form->process("op") eq $function->{op} || $self->session->form->process("func") eq $function->{func})
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -188,239 +199,239 @@ sub getAdminFunction {
|
|||
my $id = shift;
|
||||
my $testing = shift;
|
||||
my $functions = { # at some point in the future we'll need to make this pluggable/configurable
|
||||
"spectre"=>{
|
||||
title=>{
|
||||
id=>"spectre",
|
||||
namespace=>"Spectre"
|
||||
"spectre" => {
|
||||
title => {
|
||||
id => "spectre",
|
||||
namespace => "Spectre",
|
||||
},
|
||||
icon=>"spectre.gif",
|
||||
op=>"spectreStatus",
|
||||
group=>"3"
|
||||
icon => "spectre.gif",
|
||||
op => "spectreStatus",
|
||||
class => "WebGUI::Operation::Spectre",
|
||||
},
|
||||
"assets"=>{
|
||||
title=>{
|
||||
id=>"assets",
|
||||
namespace=>"Asset"
|
||||
"assets" => {
|
||||
title => {
|
||||
id => "assets",
|
||||
namespace => "Asset",
|
||||
},
|
||||
icon=>"assets.gif",
|
||||
func=>"manageAssets",
|
||||
group=>"12"
|
||||
icon => "assets.gif",
|
||||
func => "manageAssets",
|
||||
group => "12",
|
||||
},
|
||||
"versions"=>{
|
||||
title=>{
|
||||
id=>"version tags",
|
||||
namespace=>"VersionTag"
|
||||
"versions" => {
|
||||
title => {
|
||||
id => "version tags",
|
||||
namespace => "VersionTag",
|
||||
},
|
||||
icon=>"versionTags.gif",
|
||||
op=>"manageVersions",
|
||||
group=>"12"
|
||||
icon => "versionTags.gif",
|
||||
op => "manageVersions",
|
||||
class => "WebGUI::Operation::VersionTag",
|
||||
},
|
||||
"workflow"=>{
|
||||
title=>{
|
||||
id=>"topicName",
|
||||
namespace=>"Workflow"
|
||||
"workflow" => {
|
||||
title => {
|
||||
id => "topicName",
|
||||
namespace => "Workflow",
|
||||
},
|
||||
icon=>"workflow.gif",
|
||||
op=>"manageWorkflows",
|
||||
group=>"pbgroup000000000000015"
|
||||
icon => "workflow.gif",
|
||||
op => "manageWorkflows",
|
||||
class => 'WebGUI::Operation::Workflow',
|
||||
},
|
||||
"adSpace"=>{
|
||||
title=>{
|
||||
id=>"topicName",
|
||||
namespace=>"AdSpace"
|
||||
"adSpace" => {
|
||||
title => {
|
||||
id => "topicName",
|
||||
namespace => "AdSpace",
|
||||
},
|
||||
icon=>"advertising.gif",
|
||||
op=>"manageAdSpaces",
|
||||
group=>"pbgroup000000000000017"
|
||||
icon => "advertising.gif",
|
||||
op => "manageAdSpaces",
|
||||
class => 'WebGUI::Operation::AdSpace',
|
||||
},
|
||||
"cron"=>{
|
||||
title=>{
|
||||
id=>"topicName",
|
||||
namespace=>"Workflow_Cron"
|
||||
"cron" => {
|
||||
title => {
|
||||
id => "topicName",
|
||||
namespace => "Workflow_Cron",
|
||||
},
|
||||
icon=>"cron.gif",
|
||||
op=>"manageCron",
|
||||
group=>"3"
|
||||
icon => "cron.gif",
|
||||
op => "manageCron",
|
||||
class => 'WebGUI::Operation::Cron',
|
||||
},
|
||||
"users"=>{
|
||||
title=>{
|
||||
id=>"149",
|
||||
namespace=>"WebGUI"
|
||||
"users" => {
|
||||
title => {
|
||||
id => "149",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"users.gif",
|
||||
op=>"listUsers",
|
||||
group=>"11"
|
||||
icon => "users.gif",
|
||||
op => "listUsers",
|
||||
class => 'WebGUI::Operation::User',
|
||||
},
|
||||
"clipboard"=>{
|
||||
title=>{
|
||||
id=>"948",
|
||||
namespace=>"WebGUI"
|
||||
"clipboard" => {
|
||||
title => {
|
||||
id => "948",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"clipboard.gif",
|
||||
func=>"manageClipboard",
|
||||
group=>"12"
|
||||
icon => "clipboard.gif",
|
||||
func => "manageClipboard",
|
||||
group => "12",
|
||||
},
|
||||
"trash"=>{
|
||||
title=>{
|
||||
id=>"trash",
|
||||
namespace=>"WebGUI"
|
||||
"trash" => {
|
||||
title => {
|
||||
id => "trash",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"trash.gif",
|
||||
func=>"manageTrash",
|
||||
group=>"12"
|
||||
icon => "trash.gif",
|
||||
func => "manageTrash",
|
||||
group => "12",
|
||||
},
|
||||
"databases"=>{
|
||||
title=>{
|
||||
id=>"databases",
|
||||
namespace=>"WebGUI"
|
||||
"databases" => {
|
||||
title => {
|
||||
id => "databases",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"databases.gif",
|
||||
op=>"listDatabaseLinks",
|
||||
group=>"3"
|
||||
icon => "databases.gif",
|
||||
op => "listDatabaseLinks",
|
||||
class => 'WebGUI::Operation::DatabaseLink',
|
||||
},
|
||||
"ldapconnections"=>{
|
||||
title=>{
|
||||
id=>"ldapconnections",
|
||||
namespace=>"AuthLDAP"
|
||||
"ldapconnections" => {
|
||||
title => {
|
||||
id => "ldapconnections",
|
||||
namespace => "AuthLDAP",
|
||||
},
|
||||
icon=>"ldap.gif",
|
||||
op=>"listLDAPLinks",
|
||||
group=>"3"
|
||||
icon => "ldap.gif",
|
||||
op => "listLDAPLinks",
|
||||
class => 'WebGUI::Operation::LDAPLink',
|
||||
},
|
||||
"groups"=>{
|
||||
title=>{
|
||||
id=>"89",
|
||||
namespace=>"WebGUI"
|
||||
"groups" => {
|
||||
title => {
|
||||
id => "89",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"groups.gif",
|
||||
op=>"listGroups",
|
||||
group=>"11"
|
||||
icon => "groups.gif",
|
||||
op => "listGroups",
|
||||
class => 'WebGUI::Operation::Group',
|
||||
},
|
||||
"settings"=>{
|
||||
title=>{
|
||||
id=>"settings",
|
||||
namespace=>"WebGUI"
|
||||
"settings" => {
|
||||
title => {
|
||||
id => "settings",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"settings.gif",
|
||||
op=>"editSettings",
|
||||
group=>"3"
|
||||
icon => "settings.gif",
|
||||
op => "editSettings",
|
||||
class => 'WebGUI::Operation::Settings',
|
||||
},
|
||||
"help"=>{
|
||||
title=>{
|
||||
id=>"help",
|
||||
namespace=>"WebGUI"
|
||||
"help" => {
|
||||
title => {
|
||||
id => "help",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"help.gif",
|
||||
op=>"viewHelpIndex",
|
||||
group=>"7"
|
||||
icon => "help.gif",
|
||||
op => "viewHelpIndex",
|
||||
class => 'WebGUI::Operation::Help',
|
||||
},
|
||||
"statistics"=>{
|
||||
title=>{
|
||||
id=>"437",
|
||||
namespace=>"WebGUI"
|
||||
"statistics" => {
|
||||
title => {
|
||||
id => "437",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"statistics.gif",
|
||||
op=>"viewStatistics",
|
||||
group=>"3"
|
||||
icon => "statistics.gif",
|
||||
op => "viewStatistics",
|
||||
class => 'WebGUI::Operation::Statistics',
|
||||
},
|
||||
"contentProfiling"=>{
|
||||
title=>{
|
||||
id=>"content profiling",
|
||||
namespace=>"Asset"
|
||||
"contentProfiling" => {
|
||||
title => {
|
||||
id => "content profiling",
|
||||
namespace => "Asset",
|
||||
},
|
||||
icon=>"contentProfiling.gif",
|
||||
func=>"manageMetaData",
|
||||
group=>"4"
|
||||
icon => "contentProfiling.gif",
|
||||
func => "manageMetaData",
|
||||
group => "4",
|
||||
},
|
||||
"contentFilters"=>{
|
||||
title=>{
|
||||
id=>"content filters",
|
||||
namespace=>"WebGUI"
|
||||
"contentFilters" => {
|
||||
title => {
|
||||
id => "content filters",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"contentFilters.gif",
|
||||
op=>"listReplacements",
|
||||
group=>"3"
|
||||
icon => "contentFilters.gif",
|
||||
op => "listReplacements",
|
||||
class => 'WebGUI::Operation::Replacements',
|
||||
},
|
||||
"userProfiling"=>{
|
||||
title=>{
|
||||
id=>"user profiling",
|
||||
namespace=>"WebGUIProfile"
|
||||
"userProfiling" => {
|
||||
title => {
|
||||
id => "user profiling",
|
||||
namespace => "WebGUIProfile",
|
||||
},
|
||||
icon=>"userProfiling.gif",
|
||||
op=>"editProfileSettings",
|
||||
group=>"3"
|
||||
icon => "userProfiling.gif",
|
||||
op => "editProfileSettings",
|
||||
class => 'WebGUI::Operation::ProfileSettings',
|
||||
},
|
||||
"loginHistory"=>{
|
||||
title=>{
|
||||
id=>"426",
|
||||
namespace=>"WebGUI"
|
||||
"loginHistory" => {
|
||||
title => {
|
||||
id => "426",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"loginHistory.gif",
|
||||
op=>"viewLoginHistory",
|
||||
group=>"3"
|
||||
icon => "loginHistory.gif",
|
||||
op => "viewLoginHistory",
|
||||
class => 'WebGUI::Operation::LoginHistory',
|
||||
},
|
||||
"inbox"=>{
|
||||
title=>{
|
||||
id=>"159",
|
||||
namespace=>"WebGUI"
|
||||
"inbox" => {
|
||||
title => {
|
||||
id => "159",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"inbox.gif",
|
||||
op=>"viewInbox",
|
||||
group=>"2"
|
||||
icon => "inbox.gif",
|
||||
op => "viewInbox",
|
||||
group => "2",
|
||||
},
|
||||
"activeSessions"=>{
|
||||
title=>{
|
||||
id=>"425",
|
||||
namespace=>"WebGUI"
|
||||
"activeSessions" => {
|
||||
title => {
|
||||
id => "425",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon=>"activeSessions.gif",
|
||||
op=>"viewActiveSessions",
|
||||
group=>"3"
|
||||
icon => "activeSessions.gif",
|
||||
op => "viewActiveSessions",
|
||||
class => 'WebGUI::Operation::ActiveSessions',
|
||||
},
|
||||
"commerce"=>{
|
||||
title=>{
|
||||
id=>"commerce settings",
|
||||
namespace=>"Commerce"
|
||||
"commerce" => {
|
||||
title => {
|
||||
id => "commerce settings",
|
||||
namespace => "Commerce",
|
||||
},
|
||||
icon=>"commerce.gif",
|
||||
op=>"editCommerceSettings",
|
||||
group=>"3"
|
||||
icon => "commerce.gif",
|
||||
op => "editCommerceSettings",
|
||||
class => 'WebGUI::Operation::Commerce',
|
||||
},
|
||||
"subscriptions"=>{
|
||||
title=>{
|
||||
id=>"manage subscriptions",
|
||||
namespace=>"Subscription"
|
||||
"subscriptions" => {
|
||||
title => {
|
||||
id => "manage subscriptions",
|
||||
namespace => "Subscription",
|
||||
},
|
||||
icon=>"subscriptions.gif",
|
||||
op=>"listSubscriptions",
|
||||
group=>"3"
|
||||
icon => "subscriptions.gif",
|
||||
op => "listSubscriptions",
|
||||
class => 'WebGUI::Operation::Subscription',
|
||||
},
|
||||
"productManager"=>{
|
||||
title=>{
|
||||
id=>"manage products",
|
||||
namespace=>"ProductManager"
|
||||
"productManager" => {
|
||||
title => {
|
||||
id => "manage products",
|
||||
namespace => "ProductManager",
|
||||
},
|
||||
icon=>"productManager.gif",
|
||||
op=>"listProducts",
|
||||
group=>"14"
|
||||
icon => "productManager.gif",
|
||||
op => "listProducts",
|
||||
class => 'WebGUI::Operation::ProductManager',
|
||||
},
|
||||
"cache"=>{
|
||||
title=>{
|
||||
id=>"manage cache",
|
||||
namespace=>"WebGUI"
|
||||
},
|
||||
icon=>"cache.gif",
|
||||
op=>"manageCache",
|
||||
group=>"3"
|
||||
},
|
||||
"graphics"=>{
|
||||
title=>{
|
||||
id=>"manage graphics",
|
||||
namespace=>"Graphics",
|
||||
"cache" => {
|
||||
title => {
|
||||
id => "manage cache",
|
||||
namespace => "WebGUI",
|
||||
},
|
||||
icon => "cache.gif",
|
||||
op => "manageCache",
|
||||
class => 'WebGUI::Operation::Cache',
|
||||
},
|
||||
"graphics" => {
|
||||
title => {
|
||||
id => "manage graphics",
|
||||
namespace => "Graphics",,
|
||||
},
|
||||
icon=>"graphics.gif",
|
||||
op=>"listGraphicsOptions",
|
||||
group=>"3",
|
||||
icon => "graphics.gif",
|
||||
op => "listGraphicsOptions",
|
||||
class => 'WebGUI::Operation::Graphics',
|
||||
},
|
||||
};
|
||||
return $functions if $testing;
|
||||
|
|
|
|||
|
|
@ -163,7 +163,6 @@ sub _acWrapper {
|
|||
my $title = shift;
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||
my $ac = $self->getAdminConsole;
|
||||
unless $ac->getHelp;
|
||||
$ac->addSubmenuItem($self->getUrl('func=search'),$i18n->get("manage events"));
|
||||
$ac->addSubmenuItem($self->getUrl('func=manageEventMetadata'), $i18n->get('manage event metadata'));
|
||||
$ac->addSubmenuItem($self->getUrl('func=managePrereqSets'), $i18n->get('manage prerequisite sets'));
|
||||
|
|
|
|||
|
|
@ -26,6 +26,21 @@ Operation handler for displaying and killing active sessions.
|
|||
|
||||
=cut
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the given user is allowed to use this operation. user must be
|
||||
a WebGUI::User object. By default, checks the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminActiveSessions") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_killSession ( )
|
||||
|
|
@ -39,7 +54,7 @@ $session->form->process("sid"). Afterwards, it calls www_viewActiveSessions.
|
|||
sub www_killSession {
|
||||
my $session = shift;
|
||||
return www_viewActiveSessions($session) if $session->form->process("sid") eq $session->var->get("sessionId");
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
$session->db->write("delete from userSession where sessionId=?",[$session->form->process("sid")]);
|
||||
$session->db->write("delete from userSessionScratch where sessionId=?", [$session->form->process("sid")]);
|
||||
return www_viewActiveSessions($session);
|
||||
|
|
@ -55,8 +70,8 @@ delete (kill) each one via www_killSession
|
|||
=cut
|
||||
|
||||
sub www_viewActiveSessions {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
my ($output, $p, @row, $i, $sth, %data);
|
||||
tie %data, 'Tie::CPHash';
|
||||
$sth = $session->db->read("select users.username,users.userId,userSession.sessionId,userSession.expires,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,21 @@ Operation handler for advertising functions.
|
|||
|
||||
=cut
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user is allowed to use this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminAdSpace") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_clickAd ( )
|
||||
|
|
@ -55,7 +70,7 @@ Deletes an ad.
|
|||
|
||||
sub www_deleteAd {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup("pbgroup000000000000017"));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
WebGUI::AdSpace::Ad->new($session, $session->form->param("adId"))->delete;
|
||||
return www_editAdSpace($session);
|
||||
}
|
||||
|
|
@ -70,7 +85,7 @@ Deletes an ad space.
|
|||
|
||||
sub www_deleteAdSpace {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup("pbgroup000000000000017"));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
WebGUI::AdSpace->new($session, $session->form->param("adSpaceId"))->delete;
|
||||
return www_manageAdSpaces($session);
|
||||
}
|
||||
|
|
@ -85,7 +100,7 @@ Displays form for editing an ad.
|
|||
|
||||
sub www_editAd {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup("pbgroup000000000000017"));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my $id = $session->form->param("adId") || "new";
|
||||
my $ac = WebGUI::AdminConsole->new($session,"adSpace");
|
||||
my $i18n = WebGUI::International->new($session,"AdSpace");
|
||||
|
|
@ -224,7 +239,7 @@ The save method for www_editAd()
|
|||
|
||||
sub www_editAdSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup("pbgroup000000000000017"));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my %properties = (
|
||||
type=>$session->form->process("type", "selectBox"),
|
||||
url=>$session->form->process("url", "url"),
|
||||
|
|
@ -265,7 +280,7 @@ Edit or add an ad space form.
|
|||
sub www_editAdSpace {
|
||||
my $session = shift;
|
||||
my $adSpace = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup("pbgroup000000000000017"));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my $id;
|
||||
my $i18n = WebGUI::International->new($session,"AdSpace");
|
||||
my $ac = WebGUI::AdminConsole->new($session,"adSpace");
|
||||
|
|
@ -346,7 +361,7 @@ Save the www_editAdSpace method.
|
|||
|
||||
sub www_editAdSpaceSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup("pbgroup000000000000017"));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my %properties = (
|
||||
name=>$session->form->process("name", "text"),
|
||||
title=>$session->form->process("title", "text"),
|
||||
|
|
@ -374,7 +389,7 @@ Manage ad spaces.
|
|||
|
||||
sub www_manageAdSpaces {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup("pbgroup000000000000017"));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"adSpace");
|
||||
my $i18n = WebGUI::International->new($session,"AdSpace");
|
||||
my $output = "";
|
||||
|
|
|
|||
|
|
@ -45,19 +45,34 @@ is looked up in the i18n table in the WebGUI namespace.
|
|||
=cut
|
||||
|
||||
sub _submenu {
|
||||
my $session = shift;
|
||||
my $workarea = shift;
|
||||
my $title = shift;
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
$title = $i18n->get($title) if ($title);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"cache");
|
||||
if ($session->setting->get("trackPageStatistics")) {
|
||||
$ac->addSubmenuItem( $session->url->page('op=manageCache'), $i18n->get('manage cache'));
|
||||
}
|
||||
return $ac->render($workarea, $title);
|
||||
my $session = shift;
|
||||
my $workarea = shift;
|
||||
my $title = shift;
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
$title = $i18n->get($title) if ($title);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"cache");
|
||||
if ($session->setting->get("trackPageStatistics")) {
|
||||
$ac->addSubmenuItem( $session->url->page('op=manageCache'), $i18n->get('manage cache'));
|
||||
}
|
||||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can use this Operation. user defaults to the current
|
||||
user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminCache") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_flushCache ( duration )
|
||||
|
|
@ -74,11 +89,13 @@ Text description of how long the subscription lasts.
|
|||
=cut
|
||||
|
||||
sub www_flushCache {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
my $cache = WebGUI::Cache->new($session,);
|
||||
$cache->flush;
|
||||
return www_manageCache($session);
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
|
||||
# Flush the cache
|
||||
WebGUI::Cache->new($session)->flush;
|
||||
|
||||
return www_manageCache($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -91,24 +108,25 @@ provides an option to clear the cache.
|
|||
=cut
|
||||
|
||||
sub www_manageCache {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
my ($output, $data);
|
||||
my $cache = WebGUI::Cache->new($session);
|
||||
my $flushURL = $session->url->page('op=flushCache');
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
$output .= '<table>';
|
||||
$output .= '<tr><td align="right" class="tableHeader">'.$i18n->get('cache type').':</td><td class="tableData">'.ref($cache).'</td></tr>';
|
||||
$output .= '<tr><td align="right" valign="top" class="tableHeader">'.$i18n->get('cache statistics').':</td><td class="tableData"><pre>'.$cache->stats.'</pre></td></tr>';
|
||||
$output .= '<tr><td align="right" valign="top" class="tableHeader"> </td><td class="tableData">'.
|
||||
WebGUI::Form::button($session,{
|
||||
value=>$i18n->get("clear cache"),
|
||||
extras=>qq{onclick="document.location.href='$flushURL';"},
|
||||
}).
|
||||
'</td></tr>';
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
my $cache = WebGUI::Cache->new($session);
|
||||
my $flushURL = $session->url->page('op=flushCache');
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $output
|
||||
= '<table>'
|
||||
. '<tr><td align="right" class="tableHeader">'.$i18n->get('cache type').':</td><td class="tableData">'.ref($cache).'</td></tr>'
|
||||
. '<tr><td align="right" valign="top" class="tableHeader">'.$i18n->get('cache statistics').':</td><td class="tableData"><pre>'.$cache->stats.'</pre></td></tr>'
|
||||
. '<tr><td align="right" valign="top" class="tableHeader"> </td><td class="tableData">'
|
||||
. WebGUI::Form::button($session, {
|
||||
value => $i18n->get("clear cache"),
|
||||
extras => qq{onclick="document.location.href='$flushURL';"},
|
||||
})
|
||||
. '</td></tr>'
|
||||
. '</table>'
|
||||
;
|
||||
|
||||
$output .= "</table>";
|
||||
return _submenu($session,$output);
|
||||
return _submenu($session,$output);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -42,17 +42,16 @@ The i18n key of the title of this workarea.
|
|||
=cut
|
||||
|
||||
sub _submenu {
|
||||
my $session = shift;
|
||||
my $i18n = WebGUI::International->new($session, "Commerce");
|
||||
|
||||
my $workarea = shift;
|
||||
my $title = shift;
|
||||
$title = $i18n->get($title) if ($title);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"commerce");
|
||||
$ac->addSubmenuItem($session->url->page('op=editCommerceSettings'), $i18n->get('manage commerce settings'));
|
||||
$ac->addSubmenuItem($session->url->page('op=listTransactions'), $i18n->get('list transactions'));
|
||||
$ac->addSubmenuItem($session->url->page('op=listPendingTransactions'), $i18n->get('list pending transactions'));
|
||||
return $ac->render($workarea, $title);
|
||||
my $session = shift;
|
||||
my $i18n = WebGUI::International->new($session, "Commerce");
|
||||
my $workarea = shift;
|
||||
my $title = shift;
|
||||
$title = $i18n->get($title) if ($title);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"commerce");
|
||||
$ac->addSubmenuItem($session->url->page('op=editCommerceSettings'), $i18n->get('manage commerce settings'));
|
||||
$ac->addSubmenuItem($session->url->page('op=listTransactions'), $i18n->get('list transactions'));
|
||||
$ac->addSubmenuItem($session->url->page('op=listPendingTransactions'), $i18n->get('list pending transactions'));
|
||||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -64,9 +63,9 @@ A wrapper around _clearShippingScratch and _clearPaymentScratch.
|
|||
=cut
|
||||
|
||||
sub _clearCheckoutScratch {
|
||||
my $session = shift;
|
||||
_clearShippingScratch($session);
|
||||
_clearPaymentScratch($session);
|
||||
my $session = shift;
|
||||
_clearShippingScratch($session);
|
||||
_clearPaymentScratch($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -78,8 +77,8 @@ Clears the C<paymentGateway> scratch variable.
|
|||
=cut
|
||||
|
||||
sub _clearPaymentScratch {
|
||||
my $session = shift;
|
||||
$session->scratch->delete('paymentGateway');
|
||||
my $session = shift;
|
||||
$session->scratch->delete('paymentGateway');
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -162,6 +161,21 @@ sub _validateState {
|
|||
return $state;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminCommerce") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_addToCart ( $session )
|
||||
|
|
@ -535,8 +549,7 @@ sub www_checkoutSubmit {
|
|||
|
||||
=head2 www_completePendingTransaction ( $session )
|
||||
|
||||
You must be in group Admin (3) to execute the subroutine. Completes
|
||||
the transaction specified in the form variable C<tid> by calling
|
||||
Completes the transaction specified in the form variable C<tid> by calling
|
||||
WebGUI::Commerce::Transaction->completeTransaction. Returns the user
|
||||
to the C<listPendingTransactions> operation.
|
||||
|
||||
|
|
@ -544,7 +557,7 @@ to the C<listPendingTransactions> operation.
|
|||
|
||||
sub www_completePendingTransaction {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
|
||||
WebGUI::Commerce::Transaction->new($session, $session->form->process("tid"))->completeTransaction;
|
||||
|
||||
|
|
@ -581,8 +594,7 @@ transaction, but only if the plugin's C<confirmTransaction> returns true.
|
|||
|
||||
sub www_confirmTransaction {
|
||||
my $session = shift;
|
||||
my($plugin, %var);
|
||||
$plugin = WebGUI::Commerce::Payment->load($session, $session->form->process("pg","className"));
|
||||
my $plugin = WebGUI::Commerce::Payment->load($session, $session->form->process("pg","className"));
|
||||
|
||||
if ($plugin->confirmTransaction) {
|
||||
WebGUI::Commerce::Transaction->new($session, $plugin->getTransactionId)->completeTransaction;
|
||||
|
|
@ -609,8 +621,6 @@ sub www_deleteCartItem {
|
|||
|
||||
=head2 www_editCommerceSettings ( $session )
|
||||
|
||||
Only users in group Admin (3) can execute the subroutine.
|
||||
|
||||
Site wide setting for commerce, including payment plugins, shipping plugins
|
||||
and templates.
|
||||
|
||||
|
|
@ -623,17 +633,17 @@ sub www_editCommerceSettings {
|
|||
my (%tabs, $tabform, $currentPlugin, $ac, $jscript, $i18n,
|
||||
$paymentPlugin, @paymentPlugins, %paymentPlugins, @failedPaymentPlugins, $plugin,
|
||||
$shippingPlugin, @shippingPlugins, %shippingPlugins, @failedShippingPlugins);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'Commerce');
|
||||
|
||||
tie %tabs, 'Tie::IxHash';
|
||||
%tabs = (
|
||||
general=>{label=>$i18n->get('general tab')},
|
||||
payment=>{label=>$i18n->get('payment tab')},
|
||||
shipping=>{label=>$i18n->get('shipping tab')},
|
||||
salesTax=>{label=>$i18n->get('salesTax tab')},
|
||||
);
|
||||
general=>{label=>$i18n->get('general tab')},
|
||||
payment=>{label=>$i18n->get('payment tab')},
|
||||
shipping=>{label=>$i18n->get('shipping tab')},
|
||||
salesTax=>{label=>$i18n->get('salesTax tab')},
|
||||
);
|
||||
|
||||
$paymentPlugin = $session->config->get("paymentPlugins")->[0];
|
||||
$shippingPlugin = $session->config->get("shippingPlugins")->[0];
|
||||
|
|
@ -794,8 +804,6 @@ sub www_editCommerceSettings {
|
|||
|
||||
=head2 www_editCommerceSettingsSave ( $session )
|
||||
|
||||
Only users in group Admin (3) can execute the subroutine.
|
||||
|
||||
Form post processor for C<www_editCommerceSettings>. Plugin
|
||||
configuration data is stored in a special table for security and all
|
||||
other settings in the WebGUI settings table for easy access.
|
||||
|
|
@ -806,7 +814,7 @@ Returns the user to C<www_editCommerceSettings>.
|
|||
|
||||
sub www_editCommerceSettingsSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
PARAM: foreach ($session->form->param) {
|
||||
|
||||
|
|
@ -845,7 +853,7 @@ links so the Admin can complete any pending transaction.
|
|||
sub www_listPendingTransactions {
|
||||
my $session = shift;
|
||||
my ($p, $transactions, $output, $properties, $i18n);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, "Commerce");
|
||||
|
||||
|
|
@ -894,7 +902,7 @@ sub www_listTransactions {
|
|||
my $session = shift;
|
||||
my ($output, %criteria, $transaction, @transactions);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, 'TransactionLog');
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,21 @@ Operation handler for managing scheduler activities.
|
|||
|
||||
=cut
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminCron") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteCronJob ( )
|
||||
|
|
@ -38,11 +53,11 @@ Deletes a cron job.
|
|||
=cut
|
||||
|
||||
sub www_deleteCronJob {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
my $cron = WebGUI::Workflow::Cron->new($session, $session->form->get("id"));
|
||||
$cron->delete if defined $cron;
|
||||
return www_manageCron($session);
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
my $cron = WebGUI::Workflow::Cron->new($session, $session->form->get("id"));
|
||||
$cron->delete if defined $cron;
|
||||
return www_manageCron($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -55,7 +70,7 @@ Displays an edit form for a cron job.
|
|||
|
||||
sub www_editCronJob {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session, "Workflow_Cron");
|
||||
my $cron = WebGUI::Workflow::Cron->new($session, $session->form->get("id"));
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
|
|
@ -180,7 +195,7 @@ Saves the results of www_editCronJob()
|
|||
|
||||
sub www_editCronJobSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
if ($session->form->get("id") eq "new") {
|
||||
WebGUI::Workflow::Cron->create($session,{
|
||||
monthOfYear=>$session->form->get("monthOfYear"),
|
||||
|
|
@ -223,7 +238,7 @@ Display a list of the scheduler activities.
|
|||
|
||||
sub www_manageCron {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session, "Workflow_Cron");
|
||||
my $output = '<table width="100%">';
|
||||
my $rs = $session->db->read("select taskId, title, concat(minuteOfHour, ' ', hourOfDay, ' ', dayOfMonth, ' ', monthOfYear, ' ', dayOfWeek), enabled from WorkflowSchedule");
|
||||
|
|
@ -256,7 +271,7 @@ sub www_runCronJob {
|
|||
my $session = shift;
|
||||
$session->http->setMimeType("text/plain");
|
||||
$session->http->setCacheControl("none");
|
||||
unless (isInSubnet($session->env->get("REMOTE_ADDR"), $session->config->get("spectreSubnets")) || $session->user->isInGroup("3")) {
|
||||
unless (isInSubnet($session->env->get("REMOTE_ADDR"), $session->config->get("spectreSubnets")) || canView($session)) {
|
||||
$session->errorHandler->security("make a Spectre cron job runner request, but we're only allowed to accept requests from ".join(",",@{$session->config->get("spectreSubnets")}).".");
|
||||
return "error";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,41 +55,57 @@ sub _submenu {
|
|||
$ac->addSubmenuItem($session->url->page('op=editDatabaseLink;dlid=new'), $i18n->get(982));
|
||||
my $dlid = $session->form->process("dlid");
|
||||
if (($session->form->process("op") eq "editDatabaseLink" && $dlid ne "new") || $session->form->process("op") eq "deleteDatabaseLink") {
|
||||
$ac->addSubmenuItem($session->url->page('op=editDatabaseLink;dlid='.$dlid), $i18n->get(983));
|
||||
$ac->addSubmenuItem($session->url->page('op=copyDatabaseLink;dlid='.$dlid), $i18n->get(984));
|
||||
$ac->addConfirmedSubmenuItem($session->url->page("op=deleteDatabaseLinkConfirm;dlid=".$dlid), $i18n->get(985), $i18n->get(988));
|
||||
$ac->addSubmenuItem($session->url->page('op=listDatabaseLinks'), $i18n->get(986));
|
||||
$ac->addSubmenuItem($session->url->page('op=editDatabaseLink;dlid='.$dlid), $i18n->get(983));
|
||||
$ac->addSubmenuItem($session->url->page('op=copyDatabaseLink;dlid='.$dlid), $i18n->get(984));
|
||||
$ac->addConfirmedSubmenuItem($session->url->page("op=deleteDatabaseLinkConfirm;dlid=".$dlid), $i18n->get(985), $i18n->get(988));
|
||||
$ac->addSubmenuItem($session->url->page('op=listDatabaseLinks'), $i18n->get(986));
|
||||
}
|
||||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
=head2 www_copyDatabaseLink ( $session )
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
Copies the requested database link in the form variable C<dlid> if the user
|
||||
is in group Admin (3). Returns the user to the List Database Links screen.
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_copyDatabaseLink {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
WebGUI::DatabaseLink->new($session,$session->form->process("dlid"))->copy;
|
||||
return www_listDatabaseLinks($session);
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminDatabaseLink") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_copyDatabaseLink ( $session )
|
||||
|
||||
Copies the requested database link in the form variable C<dlid> if the user
|
||||
is in the correct group. Returns the user to the List Database Links screen.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_copyDatabaseLink {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
WebGUI::DatabaseLink->new($session,$session->form->process("dlid"))->copy;
|
||||
return www_listDatabaseLinks($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteDatabaseLink ( $session )
|
||||
|
||||
Requests that the user confirm the deletion of the database link in
|
||||
the form variable C<dlid>. Returns Insufficient privilege if the
|
||||
user is not in group Admin (3).
|
||||
the form variable C<dlid>.
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteDatabaseLink {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
return $session->privilege->vitalComponent if ($session->form->process("dlid") eq '0');
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my ($output);
|
||||
|
|
@ -102,6 +118,8 @@ sub www_deleteDatabaseLink {
|
|||
return _submenu($session,$output,"987");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteDatabaseLinkConfirm ( $session )
|
||||
|
||||
Deletes the requested database link in the form variable C<dlid> if the user
|
||||
|
|
@ -112,16 +130,17 @@ Returns the user to the List Database Links screen.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteDatabaseLinkConfirm {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
return $session->privilege->vitalComponent if ($session->form->process("dlid") eq '0');
|
||||
|
||||
WebGUI::DatabaseLink->new($session,$session->form->process("dlid"))->delete;
|
||||
return www_listDatabaseLinks($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_editDatabaseLink ( $session )
|
||||
|
||||
Create a new database link or edit an existing database link. The user must
|
||||
|
|
@ -131,10 +150,9 @@ Calls www_editDatabaseLinkSave on user submission.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editDatabaseLink {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my ($output, %db, $f);
|
||||
tie %db, 'Tie::CPHash';
|
||||
if ($session->form->process("dlid") eq "new") {
|
||||
|
|
@ -212,6 +230,8 @@ sub www_editDatabaseLink {
|
|||
return _submenu($session,$output,"990");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_editDatabaseLinkSave ( $session )
|
||||
|
||||
Form postprocessor for www_editDatabaseLink. Only users in group Admin (3)
|
||||
|
|
@ -221,11 +241,10 @@ Returns the user the Link Database Links screen.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editDatabaseLinkSave {
|
||||
my ($allowedKeywords);
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
# Convert enters to a single \n.
|
||||
($allowedKeywords = $session->form->process("allowedKeywords")) =~ s/\s+/\n/g;
|
||||
|
|
@ -246,6 +265,8 @@ sub www_editDatabaseLinkSave {
|
|||
return www_listDatabaseLinks($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_listDatabaseLinks ( $session )
|
||||
|
||||
List all Database links and allow the user to edit, copy or delete them.
|
||||
|
|
@ -253,10 +274,9 @@ Only users in group Admin (3) are allowed to see this screen.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_listDatabaseLinks {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $links = WebGUI::DatabaseLink->getList($session);
|
||||
my $output = '<table border="1" cellpadding="3" cellspacing="0" align="center">';
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
|
|
|
|||
|
|
@ -90,12 +90,27 @@ sub _getColorForm {
|
|||
return $f->printRowsOnly;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminGraphics") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_addColorToPalette {
|
||||
my ($f);
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
$f = WebGUI::HTMLForm->new($session);
|
||||
$f->hidden(
|
||||
|
|
@ -120,7 +135,7 @@ sub www_addColorToPalette {
|
|||
sub www_addColorToPaletteSave {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $color = WebGUI::Image::Color->new($session, $session->form->process('cid'));
|
||||
if ($session->form->process('cid') eq 'new') {
|
||||
|
|
@ -141,7 +156,7 @@ my $palette = WebGUI::Image::Palette->new($session, $session->form->process('pid
|
|||
sub www_deleteFont {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $font = WebGUI::Image::Font->new($session, $session->form->process('fid'));
|
||||
$font->delete;
|
||||
|
|
@ -153,7 +168,7 @@ sub www_deleteFont {
|
|||
sub www_deletePalette {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $palette = WebGUI::Image::Palette->new($session, $session->form->process('pid'));
|
||||
$palette->delete;
|
||||
|
|
@ -166,7 +181,7 @@ sub www_editColor {
|
|||
my ($f);
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $colorId = $session->form->process('cid');
|
||||
return www_listPalettes($session) if ($colorId eq 'new');
|
||||
|
|
@ -194,7 +209,7 @@ sub www_editColor {
|
|||
sub www_editColorSave {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $colorId = $session->form->process('cid');
|
||||
return www_listPalettes($session) if ($colorId eq 'new');
|
||||
|
|
@ -215,7 +230,7 @@ sub www_editFont {
|
|||
my ($f, $fontName);
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, "Graphics");
|
||||
|
||||
|
|
@ -253,7 +268,7 @@ sub www_editFont {
|
|||
sub www_editFontSave {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
if ($session->form->process('fid') eq 'new') {
|
||||
|
||||
|
|
@ -278,7 +293,7 @@ sub www_editPalette {
|
|||
my $session = shift;
|
||||
my $paletteId = shift || $session->form->process('pid');
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, 'Graphics');
|
||||
|
||||
|
|
@ -333,7 +348,7 @@ sub www_editPalette {
|
|||
sub www_editPaletteSave {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $palette = WebGUI::Image::Palette->new($session, $session->form->process('pid'));
|
||||
$palette->setName($session->form->process('paletteName'));
|
||||
|
|
@ -346,7 +361,7 @@ sub www_listGraphicsOptions {
|
|||
my ($output);
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, 'Graphics');
|
||||
|
||||
|
|
@ -361,7 +376,7 @@ sub www_listPalettes {
|
|||
my ($output);
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, 'Graphics');
|
||||
|
||||
|
|
@ -420,7 +435,7 @@ sub www_listFonts {
|
|||
my ($output);
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, 'Graphics');
|
||||
|
||||
|
|
@ -448,7 +463,7 @@ sub www_listFonts {
|
|||
sub www_removeColorFromPalette {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $palette = WebGUI::Image::Palette->new($session, $session->form->process('pid'));
|
||||
$palette->removeColor($session->form->process('index'));
|
||||
|
|
|
|||
|
|
@ -23,16 +23,7 @@ use WebGUI::Paginator;
|
|||
use WebGUI::SQL;
|
||||
use WebGUI::Utility;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _hasSecondaryPrivilege {
|
||||
my $session = shift;
|
||||
return 0 unless ($session->user->isInGroup(11));
|
||||
my $group = WebGUI::Group->new($session,$_[0]);
|
||||
return $group->userIsAdmin($session->user->userId);
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
#----------------------------------------------------------------------------
|
||||
sub _submenu {
|
||||
my $session = shift;
|
||||
my $workarea = shift;
|
||||
|
|
@ -40,10 +31,10 @@ sub _submenu {
|
|||
my $i18n = WebGUI::International->new($session);
|
||||
$title = $i18n->get($title) if ($title);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"groups");
|
||||
if ($session->user->isInGroup(3)) {
|
||||
if (canEditAll($session)) {
|
||||
$ac->addSubmenuItem($session->url->page('op=editGroup;gid=new'), $i18n->get(90));
|
||||
}
|
||||
if ($session->user->isInGroup(11)) {
|
||||
if (canView($session)) {
|
||||
unless ($session->form->process("op") eq "listGroups"
|
||||
|| $session->form->process("gid") eq "new"
|
||||
|| $session->form->process("op") eq "deleteGroupConfirm") {
|
||||
|
|
@ -55,10 +46,65 @@ sub _submenu {
|
|||
}
|
||||
$ac->addSubmenuItem($session->url->page("op=listGroups"), $i18n->get(756));
|
||||
}
|
||||
return $ac->render($workarea, $title);
|
||||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canEditAll ( session [, user] )
|
||||
|
||||
Returns true if the user is allowed to edit all groups. user defaults to the
|
||||
current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canEditAll {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminGroup") );
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canEditGroup ( session, group [, user] )
|
||||
|
||||
Returns true if the user can edit the specified group. user defaults to the
|
||||
current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canEditGroup {
|
||||
my $session = shift;
|
||||
my $groupId = shift;
|
||||
my $user = shift || $session->user;
|
||||
|
||||
return 1 if canEditAll($session, $user);
|
||||
|
||||
my $group = WebGUI::Group->new($session,$groupId);
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminGroupAdmin") )
|
||||
&& $group->userIsAdmin( $user->userId )
|
||||
;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user is allowed to use this control in any capacity. user
|
||||
defaults to the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
|
||||
return canEditAll($session, $user)
|
||||
|| $user->isInGroup( $session->setting->get("groupIdAdminGroupAdmin") )
|
||||
;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub doGroupSearch {
|
||||
my $session = shift;
|
||||
|
|
@ -160,7 +206,7 @@ sub walkGroups {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_addGroupsToGroupSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $group = WebGUI::Group->new($session,$session->form->process("gid"));
|
||||
my @groups = $session->form->group('groups');
|
||||
$group->addGroups(\@groups);
|
||||
|
|
@ -170,7 +216,7 @@ sub www_addGroupsToGroupSave {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_addUsersToGroupSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my @users = $session->form->selectList('users');
|
||||
my $group = WebGUI::Group->new($session,$session->form->process("gid"));
|
||||
$group->addUsers(\@users);
|
||||
|
|
@ -202,7 +248,7 @@ sub www_autoDeleteFromGroup {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_deleteGroup {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
return $session->privilege->vitalComponent() if (isIn($session->form->process("gid"), qw(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17)));
|
||||
my $g = WebGUI::Group->new($session,$session->form->process("gid"));
|
||||
$g->delete;
|
||||
|
|
@ -212,7 +258,7 @@ sub www_deleteGroup {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_deleteGroupGrouping {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup('3') || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $group = WebGUI::Group->new($session,$session->form->process("gid"));
|
||||
$group->deleteGroups([$session->form->process("delete")]);
|
||||
return www_manageGroupsInGroup($session);
|
||||
|
|
@ -222,7 +268,7 @@ sub www_deleteGroupGrouping {
|
|||
|
||||
=head2 www_deleteGrouping ( )
|
||||
|
||||
Deletes a set of users from a set of groups. Only Admins may perform this function.
|
||||
Deletes a set of users from a set of groups.
|
||||
The user and group lists are expected to
|
||||
be found in form fields names uid and gid, respectively. Visitors are not allowed to
|
||||
perform this operation.
|
||||
|
|
@ -231,7 +277,7 @@ perform this operation.
|
|||
|
||||
sub www_deleteGrouping {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
if (($session->user->userId eq $session->form->process("uid") || $session->form->process("uid") eq '3') && $session->form->process("gid") eq '3') {
|
||||
return $session->privilege->vitalComponent();
|
||||
}
|
||||
|
|
@ -248,7 +294,7 @@ sub www_deleteGrouping {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editGroup {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my ($output, $f, $g);
|
||||
if ($session->form->process("gid") eq "new") {
|
||||
$g = WebGUI::Group->new($session,"");
|
||||
|
|
@ -414,7 +460,7 @@ sub www_editGroup {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editGroupSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $g = WebGUI::Group->new($session,$session->form->process("gid"));
|
||||
$g->description($session->form->process("description"));
|
||||
$g->name($session->form->process("groupName"));
|
||||
|
|
@ -442,7 +488,7 @@ sub www_editGroupSave {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editGrouping {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
$f->submit;
|
||||
|
|
@ -490,7 +536,7 @@ sub www_editGrouping {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editGroupingSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $group = WebGUI::Group->new($session,$session->form->process("gid"));
|
||||
$group->userGroupExpireDate($session->form->process("uid"),$session->datetime->setToEpoch($session->form->process("expireDate")));
|
||||
$group->userIsAdmin($session->form->process("uid"),$session->form->process("groupAdmin"));
|
||||
|
|
@ -500,7 +546,7 @@ sub www_editGroupingSave {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_emailGroup {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my ($output,$f);
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
$f = WebGUI::HTMLForm->new($session);
|
||||
|
|
@ -536,7 +582,7 @@ sub www_emailGroup {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_emailGroupSend {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $mail = WebGUI::Mail::Send->create($session, {toGroup=>$session->form->process("gid"),subject=>$session->form->process("subject"),from=>$session->form->process("from")});
|
||||
$mail->addHtml($session->form->process("message","HTMLArea"));
|
||||
$mail->addFooter;
|
||||
|
|
@ -549,7 +595,7 @@ sub www_emailGroupSend {
|
|||
sub www_listGroups {
|
||||
my $session = shift;
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
if ($session->user->isInGroup(3)) {
|
||||
if (canEditAll($session)) {
|
||||
my $output = getGroupSearchForm($session, "listGroups");
|
||||
my ($groupCount) = $session->db->quickArray("select count(*) from groups where isEditable=1");
|
||||
return _submenu($session,$output) unless ($session->form->process("doit") || $groupCount<250 || $session->form->process("pn") > 1);
|
||||
|
|
@ -571,7 +617,7 @@ sub www_listGroups {
|
|||
$output .= '</table>';
|
||||
$output .= $p->getBarTraditional;
|
||||
return _submenu($session,$output);
|
||||
} elsif ($session->user->isInGroup(11)) {
|
||||
} elsif (canView($session)) {
|
||||
my ($output, $p, $sth, @data, @row, $i, $userCount);
|
||||
my @editableGroups = $session->db->buildArray("select groupId from groupings where userId=".$session->db->quote($session->user->userId)." and groupAdmin=1");
|
||||
push (@editableGroups,0);
|
||||
|
|
@ -599,14 +645,16 @@ sub www_listGroups {
|
|||
$output .= $p->getBarTraditional($session->form->process("pn"));
|
||||
return _submenu($session,$output,'89');
|
||||
}
|
||||
return $session->privilege->adminOnly();
|
||||
else {
|
||||
return $session->privilege->adminOnly();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_manageGroupsInGroup {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
$f->submit;
|
||||
$f->hidden(
|
||||
|
|
@ -640,7 +688,7 @@ sub www_manageGroupsInGroup {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_manageUsersInGroup {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
|
||||
return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid")));
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $output = WebGUI::Form::formHeader($session,)
|
||||
.WebGUI::Form::hidden($session,{
|
||||
|
|
|
|||
|
|
@ -277,6 +277,21 @@ sub _columnar {
|
|||
return $output;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminHelp") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewHelp ( $session )
|
||||
|
|
@ -289,7 +304,7 @@ UI level, and this can be toggled on and off by another form parameter, uiOverri
|
|||
|
||||
sub www_viewHelp {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup(7));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"help");
|
||||
$session->style->setLink($session->url->extras("/help.css"), {rel=>"stylesheet", type=>"text/css"});
|
||||
my $namespace = $session->form->process("namespace","className") || "WebGUI";
|
||||
|
|
@ -372,7 +387,7 @@ Display the index of all help entries in all namespaces.
|
|||
|
||||
sub www_viewHelpIndex {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup(7));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my @helpIndex;
|
||||
my $i;
|
||||
|
|
@ -415,11 +430,13 @@ Utility method that returns link to the WebGUI Community Wiki with i18n'ed text.
|
|||
|
||||
sub wikiHelpLink {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
return sprintf q!<p>%s <a href="%s">%s</a></p>!,
|
||||
$i18n->get('wiki help label leadin'),
|
||||
'http://www.webgui.org/community-wiki',
|
||||
$i18n->get('wiki help target'),
|
||||
;
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -25,8 +25,7 @@ Package WebGUI::Operation::LDAPLink
|
|||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Operational handler for creating, managing and deleting LDAP Links. Only users
|
||||
in group Admin (3) are allowed to execute subroutines in this package.
|
||||
Operational handler for creating, managing and deleting LDAP Links.
|
||||
|
||||
=cut
|
||||
|
||||
|
|
@ -72,6 +71,21 @@ sub _submenu {
|
|||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminLDAPLink") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 validateForm ( )
|
||||
|
|
@ -123,7 +137,7 @@ Returns the user to the List LDAP Links screen.
|
|||
|
||||
sub www_copyLDAPLink {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my (%db);
|
||||
tie %db, 'Tie::CPHash';
|
||||
%db = $session->db->quickHash("select * from ldapLink where ldapLinkId=".$session->db->quote($session->form->process("llid")));
|
||||
|
|
@ -143,7 +157,7 @@ Deletes the requested LDAP Link in the form variable C<llid>. Returns the user
|
|||
|
||||
sub www_deleteLDAPLink {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
$session->db->write("delete from ldapLink where ldapLinkId=".$session->db->quote($session->form->process("llid")));
|
||||
$session->form->process("op") = "listLDAPLinks";
|
||||
return www_listLDAPLinks($session);
|
||||
|
|
@ -161,7 +175,7 @@ Calls www_editLDAPLinkSave when done.
|
|||
sub www_editLDAPLink {
|
||||
my $session = shift;
|
||||
my $errors = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
my ($output, %db, $f);
|
||||
|
||||
|
||||
|
|
@ -298,7 +312,7 @@ Returns the user to www_listLDAPLinks when done.
|
|||
|
||||
sub www_editLDAPLinkSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
# Check for errors
|
||||
my $errors = validateForm($session);
|
||||
|
|
@ -338,7 +352,7 @@ links. Each LDAP link is tested and the status of that test is returned.
|
|||
|
||||
sub www_listLDAPLinks {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my ($output, $p, $sth, $data, @row, $i);
|
||||
my $i18n = WebGUI::International->new($session,"AuthLDAP");
|
||||
my $returnUrl = "";
|
||||
|
|
|
|||
|
|
@ -22,6 +22,21 @@ Package WebGUI::Operation::LoginHistory
|
|||
|
||||
=cut
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminLoginHistory") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewLoginHistory ( )
|
||||
|
|
@ -35,7 +50,7 @@ they used.
|
|||
|
||||
sub www_viewLoginHistory {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my ($output, $p, @row, $i, $sth, %data);
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
tie %data, 'Tie::CPHash';
|
||||
|
|
|
|||
|
|
@ -49,6 +49,21 @@ sub _submenu {
|
|||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminProductManager") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteProductParameterOption ( $session )
|
||||
|
|
@ -65,7 +80,7 @@ sub www_deleteProductParameterOption {
|
|||
my $session = shift;
|
||||
my $optionId = $session->form->process("optionId");
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
WebGUI::Product->getByOptionId($session,$optionId)->deleteOption($optionId);
|
||||
|
||||
|
|
@ -88,7 +103,7 @@ sub www_deleteProductParameter {
|
|||
my $session = shift;
|
||||
my $parameterId = $session->form->process("parameterId");
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
WebGUI::Product->getByParameterId($session,$parameterId)->deleteParameter($parameterId);
|
||||
|
||||
|
|
@ -111,7 +126,7 @@ sub www_deleteProduct {
|
|||
my $session = shift;
|
||||
my $productId = $session->form->process("productId");
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
WebGUI::Product->new($session,$productId)->delete;
|
||||
|
||||
|
|
@ -134,7 +149,7 @@ sub www_editProduct {
|
|||
my $session = shift;
|
||||
my ($productId, $product, $f, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'ProductManager');
|
||||
$productId = $session->form->process("productId");
|
||||
|
|
@ -260,7 +275,7 @@ sub www_editProductSave {
|
|||
my $session = shift;
|
||||
my ($self, @error, $productId, $product, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'ProductManager');
|
||||
|
||||
|
|
@ -307,7 +322,7 @@ sub www_editProductParameter {
|
|||
my $session = shift;
|
||||
my ($parameterId, $product, $productId, $parameter, $f, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'ProductManager');
|
||||
|
||||
|
|
@ -366,7 +381,7 @@ sub www_editProductParameterSave {
|
|||
my $session = shift;
|
||||
my (@error, $parameterId, $product, $i18n, $skuTemplate, $oldName, $newName);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'ProductManager');
|
||||
|
||||
|
|
@ -416,7 +431,7 @@ sub www_editProductParameterOption {
|
|||
my $session = shift;
|
||||
my ($self, $optionId, $option, $f, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'ProductManager');
|
||||
|
||||
|
|
@ -492,7 +507,7 @@ sub www_editProductParameterOptionSave {
|
|||
my $session = shift;
|
||||
my ($self, @error, $optionId, $product, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'ProductManager');
|
||||
|
||||
|
|
@ -530,7 +545,7 @@ sub www_editProductVariant {
|
|||
my $session = shift;
|
||||
my ($variantId, $variant, $f, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, "ProductManager");
|
||||
|
||||
|
|
@ -596,7 +611,7 @@ sub www_editProductVariantSave {
|
|||
my $session = shift;
|
||||
my $variantId = $session->form->process("variantId");
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
WebGUI::Product->getByVariantId($session,$variantId)->setVariant($variantId, $session->form->paramsHashRef);
|
||||
|
||||
|
|
@ -619,7 +634,7 @@ sub www_editSkuTemplate {
|
|||
my $session = shift;
|
||||
my ($product, $productId, $output, $f, $name, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, "ProductManager");
|
||||
|
||||
|
|
@ -671,7 +686,7 @@ sub www_editSkuTemplateSave {
|
|||
my $session = shift;
|
||||
my ($productId) = $session->form->process("productId");
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
WebGUI::Product->new($session,$productId)->set({
|
||||
skuTemplate => $session->form->process("skuTemplate"),
|
||||
|
|
@ -696,7 +711,7 @@ sub www_listProducts {
|
|||
my $session = shift;
|
||||
my ($self, $sth, $output, $row, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, 'ProductManager');
|
||||
|
||||
|
|
@ -735,7 +750,7 @@ sub www_listProductVariants {
|
|||
my $session = shift;
|
||||
my ($productId, $product, @variants, %parameters, %options, $output, %composition, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, "ProductManager");
|
||||
|
||||
|
|
@ -808,7 +823,7 @@ The current WebGUI session object.
|
|||
sub www_listProductVariantsSave {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
my %availableVariants = map {$_ => 1} $session->form->selectList('available');
|
||||
|
||||
|
|
@ -839,7 +854,7 @@ sub www_manageProduct {
|
|||
my $session = shift;
|
||||
my ($product, $output, $parameter, $option, $optionId, $i18n);
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$i18n = WebGUI::International->new($session, "ProductManager");
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,23 @@ sub _submenu {
|
|||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminProfileSettings") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteProfileCategoryConfirm ( $session )
|
||||
|
||||
Deletes the profile category in form variable C<cid>, unless the category is
|
||||
|
|
@ -82,10 +99,9 @@ Othewise, it returns the user to www_editProfileSettings.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteProfileCategoryConfirm {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $category = WebGUI::ProfileCategory->new($session,$session->form->process("cid"));
|
||||
return WebGUI::AdminConsole->new($session,"userProfiling")->render($session->privilege->vitalComponent()) if ($category->isProtected);
|
||||
$category->delete;
|
||||
|
|
@ -103,7 +119,7 @@ Othewise, it returns the user to www_editProfileSettings.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_deleteProfileFieldConfirm {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $field = WebGUI::ProfileField->new($session,$session->form->process("fid"));
|
||||
return WebGUI::AdminConsole->new($session,"userProfiling")->render($session->privilege->vitalComponent()) if ($field->isProtected);
|
||||
$field->delete;
|
||||
|
|
@ -120,7 +136,7 @@ Add or edit a profile category specified in form variable C<cid>. Calls www_edi
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editProfileCategory {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $data = {};
|
||||
my $i18n = WebGUI::International->new($session,"WebGUIProfile");
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
|
|
@ -179,7 +195,7 @@ Returns the user to www_editProfileSettings when done.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editProfileCategorySave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my %data = (
|
||||
label=>$session->form->text("label"),
|
||||
visible=>$session->form->yesNo("visible"),
|
||||
|
|
@ -202,7 +218,7 @@ Add or edit a profile field specified in form variable C<fid>. Calls www_editPr
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editProfileField {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session,"WebGUIProfile");
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
$f->submit;
|
||||
|
|
@ -337,7 +353,7 @@ Returns the user to www_editProfileSettings when done.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editProfileFieldSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
# Special case for WebGUI auth password recovery.
|
||||
my $requiredForPasswordRecovery = $session->form->yesNo('requiredForPasswordRecovery');
|
||||
|
|
@ -381,7 +397,7 @@ Allows profile categories and fields to be managed (added, edited, deleted or mo
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editProfileSettings {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session,"WebGUIProfile");
|
||||
my $output = "";
|
||||
foreach my $category (@{WebGUI::ProfileCategory->getCategories($session)}) {
|
||||
|
|
@ -414,7 +430,7 @@ Returns the user to www_editProfileSettings.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_moveProfileCategoryDown {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
WebGUI::ProfileCategory->new($session,$session->form->process("cid"))->moveDown;
|
||||
return www_editProfileSettings($session);
|
||||
}
|
||||
|
|
@ -429,7 +445,7 @@ Returns the user to www_editProfileSettings.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_moveProfileCategoryUp {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
WebGUI::ProfileCategory->new($session,$session->form->process("cid"))->moveUp;
|
||||
return www_editProfileSettings($session);
|
||||
}
|
||||
|
|
@ -445,7 +461,7 @@ Returns the user to www_editProfileSettings.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_moveProfileFieldDown {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
WebGUI::ProfileField->new($session,$session->form->process("fid"))->moveDown;
|
||||
return www_editProfileSettings($session);
|
||||
}
|
||||
|
|
@ -461,7 +477,7 @@ Returns the user to www_editProfileSettings.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_moveProfileFieldUp {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
WebGUI::ProfileField->new($session,$session->form->process("fid"))->moveUp;
|
||||
return www_editProfileSettings($session);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ Package WebGUI::Operation::Replacements
|
|||
Operation handler for conditional editing of submitted WebGUI content, similar to
|
||||
a search and replace function in word processors.
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 _submenu ( $session, $workarea, $title )
|
||||
|
||||
Utility routine for creating the AdminConsole for Replacement functions.
|
||||
|
|
@ -44,35 +46,51 @@ table in the WebGUI namespace.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _submenu {
|
||||
my $session = shift;
|
||||
my $workarea = shift;
|
||||
my $title = shift;
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
$title = $i18n->get($title) if ($title);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"contentFilters");
|
||||
$ac->addSubmenuItem($session->url->page("op=editReplacement;replacementId=new"), $i18n->get(1047));
|
||||
$ac->addSubmenuItem($session->url->page("op=listReplacements"), $i18n->get("content filters"));
|
||||
return $ac->render($workarea, $title);
|
||||
my $session = shift;
|
||||
my $workarea = shift;
|
||||
my $title = shift;
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
$title = $i18n->get($title) if ($title);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"contentFilters");
|
||||
$ac->addSubmenuItem($session->url->page("op=editReplacement;replacementId=new"), $i18n->get(1047));
|
||||
$ac->addSubmenuItem($session->url->page("op=listReplacements"), $i18n->get("content filters"));
|
||||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteReplacement ( $session )
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Delete a replacement specified by the form variable C<replacementId> if the user is in group Admin (3). Returns the
|
||||
user to the List Replacements screen, www_listReplacements.
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminReplacements") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteReplacement ( $session )
|
||||
|
||||
Delete a replacement specified by the form variable C<replacementId>.
|
||||
Returns the user to the List Replacements screen, www_listReplacements.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_deleteReplacement {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
$session->db->write("delete from replacements where replacementId=".$session->db->quote($session->form->process("replacementId")));
|
||||
return www_listReplacements($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_editReplacement ( $session )
|
||||
|
||||
Add a new, or edit an existing specified by the form variable
|
||||
|
|
@ -83,10 +101,9 @@ Calls www_editReplacementSave on submission.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editReplacement {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $data = $session->db->getRow("replacements","replacementId",$session->form->process("replacementId"));
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
|
|
@ -119,19 +136,19 @@ sub www_editReplacement {
|
|||
return _submenu($session,$f->print,"1052");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_editReplacementSave ( $session )
|
||||
|
||||
Form post processor for www_editReplacement. You must be in group Admin (3) to
|
||||
execute this function.
|
||||
Form post processor for www_editReplacement.
|
||||
|
||||
Returns the user to www_listReplacements.
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editReplacementSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
$session->db->setRow("replacements","replacementId",{
|
||||
replacementId=>$session->form->process("replacementId"),
|
||||
searchFor=>$session->form->process("searchFor"),
|
||||
|
|
@ -140,17 +157,18 @@ sub www_editReplacementSave {
|
|||
return www_listReplacements($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_listReplacements ( $session )
|
||||
|
||||
List all replacements if the user is in group Admin (3) and provides URls for replacements
|
||||
to be added or deleted.
|
||||
List all replacements and provides URls for replacements to be added or
|
||||
deleted.
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_listReplacements {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $output = '<table>';
|
||||
$output .= '<tr><td></td><td class="tableHeader">'.$i18n->get(1050).'</td><td class="tableHeader">'.$i18n->get(1051).'</td></tr>';
|
||||
|
|
|
|||
|
|
@ -14,21 +14,19 @@ use strict;
|
|||
|
||||
=head1 NAME
|
||||
|
||||
Package WebGUI::Operation::Admin
|
||||
WebGUI::Operation::SSO
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Operation handler for admin functions
|
||||
TODO
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_switchOffAdmin ( )
|
||||
|
||||
If the current user is in the Turn On Admin Group, then allow them to turn off Admin mode
|
||||
via WebGUI::Session::Var::switchAdminOff()
|
||||
=head2 www_ssoViaSessionId
|
||||
|
||||
TODO: DOCUMENT ME
|
||||
|
||||
=cut
|
||||
|
||||
|
|
|
|||
|
|
@ -40,9 +40,9 @@ Returns an array reference used by www_editSettings and www_editSettingsSave to
|
|||
=cut
|
||||
|
||||
sub definition {
|
||||
my $session = shift;
|
||||
my $i18n = shift;
|
||||
my @fields = ();
|
||||
my $session = shift;
|
||||
my $i18n = shift;
|
||||
my @fields = ();
|
||||
# company info
|
||||
push(@fields, {
|
||||
tab=>"company",
|
||||
|
|
@ -434,6 +434,47 @@ sub definition {
|
|||
hoverHelp=>$i18n->get('164 description'),
|
||||
defaultValue=>[$session->setting->get("authMethod")],
|
||||
});
|
||||
|
||||
# Administrative permissions
|
||||
my @groupSettings = qw(
|
||||
groupIdAdminActiveSessions
|
||||
groupIdAdminAdSpace
|
||||
groupIdAdminCache
|
||||
groupIdAdminCommerce
|
||||
groupIdAdminCron
|
||||
groupIdAdminDatabaseLink
|
||||
groupIdAdminGraphics
|
||||
groupIdAdminGroup
|
||||
groupIdAdminGroupAdmin
|
||||
groupIdAdminHelp
|
||||
groupIdAdminLDAPLink
|
||||
groupIdAdminLoginHistory
|
||||
groupIdAdminProductManager
|
||||
groupIdAdminProfileSettings
|
||||
groupIdAdminReplacements
|
||||
groupIdAdminSpectre
|
||||
groupIdAdminStatistics
|
||||
groupIdAdminSubscription
|
||||
groupIdAdminTransactionLog
|
||||
groupIdAdminUser
|
||||
groupIdAdminUserAdd
|
||||
groupIdAdminVersionTag
|
||||
groupIdAdminWorkflow
|
||||
groupIdAdminWorkflowRun
|
||||
);
|
||||
|
||||
for my $group (@groupSettings) {
|
||||
push @fields, {
|
||||
tab => 'perms',
|
||||
fieldType => 'group',
|
||||
name => $group,
|
||||
label => $i18n->get("settings $group label"),
|
||||
hoverHelp => $i18n->get("settings $group hoverHelp"),
|
||||
defaultValue => $session->setting->get($group),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
return \@fields;
|
||||
}
|
||||
|
||||
|
|
@ -486,6 +527,7 @@ sub www_editSettings {
|
|||
misc => { label => $i18n->get("misc") },
|
||||
user => { label => $i18n->get("user") },
|
||||
auth => { label => $i18n->get("authentication") },
|
||||
perms => { label => $i18n->get("permissions") },
|
||||
);
|
||||
|
||||
# Start the form
|
||||
|
|
|
|||
|
|
@ -25,8 +25,7 @@ Shared routines for WebGUI Operations.
|
|||
|
||||
=head2 accountOptions ( $session )
|
||||
|
||||
Copies the requested database link in the form variable C<dlid> if the user
|
||||
is in group Admin (3). Returns the user to the List Database Links screen.
|
||||
TODO: DOCUMENT ME
|
||||
|
||||
=cut
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,21 @@ Operations for Spectre.
|
|||
|
||||
=cut
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminSpectre") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_spectreGetSiteData ( )
|
||||
|
|
@ -36,7 +51,7 @@ Checks to ensure the requestor is who we think it is, and then returns a JSON st
|
|||
=cut
|
||||
|
||||
sub www_spectreGetSiteData {
|
||||
my $session = shift;
|
||||
my $session = shift;
|
||||
$session->http->setMimeType("text/json");
|
||||
$session->http->setCacheControl("none");
|
||||
my %siteData = ();
|
||||
|
|
@ -92,17 +107,13 @@ Show information about Spectre's current workload.
|
|||
sub www_spectreStatus {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->adminOnly() unless $session->user->isInGroup(3);
|
||||
return $session->privilege->adminOnly unless canView($session);
|
||||
|
||||
# start to prepare the display
|
||||
my $ac = WebGUI::AdminConsole->new($session, 'spectre');
|
||||
my $i18n = WebGUI::International->new($session, 'Spectre');
|
||||
|
||||
$session->http->setCacheControl("none");
|
||||
unless (isInSubnet($session->env->get("REMOTE_ADDR"), $session->config->get("spectreSubnets"))) {
|
||||
$session->errorHandler->security("make a Spectre workflow runner request, but we're only allowed to accept requests from ".join(",",@{$session->config->get("spectreSubnets")}).".");
|
||||
return "subnet";
|
||||
}
|
||||
|
||||
my $remote = create_ikc_client(
|
||||
port=>$session->config->get("spectrePort"),
|
||||
|
|
@ -112,14 +123,14 @@ sub www_spectreStatus {
|
|||
);
|
||||
|
||||
if (!$remote) {
|
||||
return $ac->render($i18n->get('not running'), $i18n->get('spectre'));
|
||||
return $ac->render($i18n->get('not running'), $i18n->get('spectre'));
|
||||
}
|
||||
|
||||
my $sitename = $session->config()->get('sitename')->[0];
|
||||
my $workflowResult = $remote->post_respond('workflow/getJsonStatus',$sitename);
|
||||
if (!$workflowResult) {
|
||||
$remote->disconnect();
|
||||
return $ac->render($i18n->get('workflow status error'), $i18n->get('spectre'));
|
||||
return $ac->render($i18n->get('workflow status error'), $i18n->get('spectre'));
|
||||
}
|
||||
|
||||
my $cronResult = $remote->post_respond('cron/getJsonStatus',$sitename);
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ Package WebGUI::Operation::Statistics
|
|||
Handles displaying statistics about WebGUI. This isn't page count, but rather information
|
||||
about the number of assets, users, groups, etc.
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 _submenu ( $session, $workarea, $title, $help )
|
||||
|
||||
Utility routine for creating the AdminConsole for Statistics functions.
|
||||
|
|
@ -49,8 +51,6 @@ as a link to the user.
|
|||
|
||||
=cut
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _submenu {
|
||||
my $session = shift;
|
||||
my $workarea = shift;
|
||||
|
|
@ -64,6 +64,23 @@ sub _submenu {
|
|||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminStatistics") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewStatistics ( $session )
|
||||
|
||||
Displays information to the user about WebGUI statistics if they are
|
||||
|
|
@ -109,10 +126,9 @@ Number of groups.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_viewStatistics {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my ($output, $data);
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $url = "http://update.webgui.org/latest-version.txt";
|
||||
|
|
|
|||
|
|
@ -84,6 +84,23 @@ sub _submenu {
|
|||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminSubscription") );
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 www_createSubscriptionCodeBatch ( $session, error )
|
||||
|
||||
Form to accept parameters to create a batch of subscription codes.
|
||||
|
|
@ -98,12 +115,10 @@ An HTML scalar of an error message to be returned to the user.
|
|||
|
||||
=cut
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_createSubscriptionCodeBatch {
|
||||
my $session = shift;
|
||||
my (%subscriptions, $f, $error, $errorMessage);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
$error = shift;
|
||||
my $i18n = WebGUI::International->new($session, "Subscription");
|
||||
|
|
@ -174,7 +189,7 @@ sub www_createSubscriptionCodeBatchSave {
|
|||
my $session = shift;
|
||||
my ($numberOfCodes, $description, $expires, $batchId, @codeElements, $currentCode, $code, $i, @subscriptions,
|
||||
@error, $creationEpoch);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, "Subscription");
|
||||
|
||||
|
|
@ -224,7 +239,7 @@ The current WebGUI session object.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_deleteSubscription {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
WebGUI::Subscription->new($session,$session->form->process("sid"))->delete;
|
||||
return www_listSubscriptions($session);
|
||||
|
|
@ -244,7 +259,7 @@ The current WebGUI session object.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_deleteSubscriptionCodeBatch {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
$session->db->write("delete from subscriptionCodeBatch where batchId=".$session->db->quote($session->form->process("bid")));
|
||||
$session->db->write("delete from subscriptionCode where batchId=".$session->db->quote($session->form->process("bid")));
|
||||
|
|
@ -266,7 +281,7 @@ The current WebGUI session object.
|
|||
#-------------------------------------------------------------------
|
||||
sub www_deleteSubscriptionCodes {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
if ($session->form->process("selection") eq 'dc') {
|
||||
$session->db->write("delete from subscriptionCode where dateCreated >= ".$session->db->quote($session->form->process("dcStart")).
|
||||
|
|
@ -294,7 +309,7 @@ The current WebGUI session object.
|
|||
sub www_editSubscription {
|
||||
my $session = shift;
|
||||
my ($properties, $subscriptionId, $durationInterval, $durationUnits, $f);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, "Subscription");
|
||||
|
||||
|
|
@ -388,7 +403,7 @@ The current WebGUI session object.
|
|||
sub www_editSubscriptionSave {
|
||||
my $session = shift;
|
||||
my (@relevantFields);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $properties = {};
|
||||
@relevantFields = qw(subscriptionId name useSalesTax price description subscriptionGroup duration executeOnSubscription karma);
|
||||
|
|
@ -415,7 +430,7 @@ The current WebGUI session object.
|
|||
sub www_listSubscriptionCodeBatches {
|
||||
my $session = shift;
|
||||
my ($p, $batches, $output);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, "Subscription");
|
||||
|
||||
|
|
@ -456,7 +471,7 @@ The current WebGUI session object.
|
|||
sub www_listSubscriptionCodes {
|
||||
my $session = shift;
|
||||
my ($p, $codes, $output, $where, $ops, $delete);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, "Subscription");
|
||||
|
||||
|
|
@ -549,7 +564,7 @@ The current WebGUI session object.
|
|||
sub www_listSubscriptions {
|
||||
my $session = shift;
|
||||
my ($p, $subscriptions, $output);
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, "Subscription");
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,21 @@ Operations for dealing with transactions from the WebGUI Commerce System.
|
|||
=cut
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminTransactionLog") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewPurchaseHistory ( errorMessage )
|
||||
|
|
@ -108,7 +123,7 @@ sub www_deleteTransaction {
|
|||
my $session = shift;
|
||||
my $transactionId;
|
||||
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
$transactionId = $session->form->process("tid");
|
||||
|
||||
|
|
@ -120,7 +135,7 @@ sub www_deleteTransaction {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_deleteTransactionItem {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->insufficient unless canView($session);
|
||||
|
||||
WebGUI::Commerce::Transaction->new($session, $session->form->process("tid"))->deleteItem($session->form->process("iid"), $session->form->process("itype"));
|
||||
|
||||
|
|
|
|||
|
|
@ -69,11 +69,11 @@ sub _submenu {
|
|||
my $title;
|
||||
$title = $i18n->get($properties->{title}) if ($properties->{title});
|
||||
|
||||
if ($session->user->isInGroup(11)) {
|
||||
if (canEdit($session)) {
|
||||
$ac->addSubmenuItem($session->url->page("op=editUser;uid=new"), $i18n->get(169));
|
||||
}
|
||||
|
||||
if ($session->user->isInGroup(3)) {
|
||||
if (canEdit($session)) {
|
||||
unless ($session->form->process("op") eq "listUsers"
|
||||
|| $session->form->process("op") eq "deleteUserConfirm"
|
||||
|| $userId eq "new") {
|
||||
|
|
@ -89,6 +89,55 @@ sub _submenu {
|
|||
return $ac->render($workarea, $title);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canAdd ( session [, user] )
|
||||
|
||||
Returns true if the user is allowed to add other users. user defaults to the
|
||||
current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canAdd {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminUserAdd") )
|
||||
|| canEdit($session, $user)
|
||||
;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canEdit ( session [, user] )
|
||||
|
||||
Returns true if the user is allowed to do everything in this module. user
|
||||
defaults to the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canEdit {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminUser") );
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user is allowed to see this module. user defaults to the
|
||||
current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return canAdd($session, $user);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 doUserSearch ( session, op, returnPaginator, userFilter )
|
||||
|
||||
Subroutine that actually performs the SQL search for users.
|
||||
|
|
@ -112,7 +161,6 @@ Array reference, used to screen out user names via a SQL "not in ()" clause.
|
|||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub doUserSearch {
|
||||
my $session = shift;
|
||||
my $op = shift;
|
||||
|
|
@ -151,7 +199,7 @@ sub doUserSearch {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 doUserSearchForm ( session, op, params, noStatus )
|
||||
=head2 getUserSearchForm ( session, op, params, noStatus )
|
||||
|
||||
Form front-end and display for searching for users.
|
||||
|
||||
|
|
@ -246,7 +294,7 @@ Allows an administrator to assume another user.
|
|||
|
||||
sub www_becomeUser {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canEdit($session);
|
||||
return unless WebGUI::User->validUserId($session, $session->form->process("uid"));
|
||||
$session->var->end($session->var->get("sessionId"));
|
||||
$session->user({userId=>$session->form->process("uid")});
|
||||
|
|
@ -265,7 +313,7 @@ after this.
|
|||
|
||||
sub www_deleteUser {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canEdit($session);
|
||||
my ($u);
|
||||
if ($session->form->process("uid") eq '1' || $session->form->process("uid") eq '3') {
|
||||
return WebGUI::AdminConsole->new($session,"users")->render($session->privilege->vitalComponent());
|
||||
|
|
@ -279,7 +327,7 @@ sub www_deleteUser {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editUser {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(11));
|
||||
return $session->privilege->adminOnly() unless canAdd($session);
|
||||
my $error = shift;
|
||||
my $uid = shift || $session->form->process("uid");
|
||||
my $i18n = WebGUI::International->new($session, "WebGUI");
|
||||
|
|
@ -400,7 +448,7 @@ sub www_editUser {
|
|||
sub www_editUserSave {
|
||||
my $session = shift;
|
||||
my $postedUserId = $session->form->process("uid"); #userId posted from www_editUser form
|
||||
my $isAdmin = $session->user->isInGroup(3);
|
||||
my $isAdmin = canEdit($session);
|
||||
my $isSecondary;
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my ($existingUserId) = $session->db->quickArray("select userId from users where username=".$session->db->quote($session->form->process("username")));
|
||||
|
|
@ -408,7 +456,7 @@ sub www_editUserSave {
|
|||
my $actualUserId; #userId returned from the user object
|
||||
|
||||
unless ($isAdmin) {
|
||||
$isSecondary = ($session->user->isInGroup(11) && $postedUserId eq "new");
|
||||
$isSecondary = (canAdd($session) && $postedUserId eq "new");
|
||||
}
|
||||
|
||||
return $session->privilege->adminOnly() unless ($isAdmin || $isSecondary);
|
||||
|
|
@ -474,7 +522,7 @@ sub www_editUserSave {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editUserKarma {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canEdit($session);
|
||||
my ($output, $f, $a, %user, %data, $method, $values, $category, $label, $default, $previousCategory);
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
$f = WebGUI::HTMLForm->new($session);
|
||||
|
|
@ -510,7 +558,7 @@ sub www_editUserKarma {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_editUserKarmaSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canEdit($session);
|
||||
my ($u);
|
||||
$u = WebGUI::User->new($session,$session->form->process("uid"));
|
||||
$u->karma($session->form->process("amount"),$session->user->username." (".$session->user->userId.")",$session->form->process("description"));
|
||||
|
|
@ -542,8 +590,8 @@ sub www_formUsers {
|
|||
foreach my $data (@{$p->getPageData}) {
|
||||
$output .= '<li><a href="#" onclick="window.opener.document.getElementById(\''.$session->form->process("formId").'\').value=\''.$data->{userId}.'\';window.opener.document.getElementById(\''.$session->form->process("formId").'_display\').value=\''.$data->{username}.'\';window.close();">'.$data->{username}.'</a></li>';
|
||||
}
|
||||
$output .= '</ul>';
|
||||
$output .= $p->getBarTraditional;
|
||||
$output .= '</ul>';
|
||||
$output .= $p->getBarTraditional;
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
@ -551,12 +599,17 @@ sub www_formUsers {
|
|||
#-------------------------------------------------------------------
|
||||
sub www_listUsers {
|
||||
my $session = shift;
|
||||
unless ($session->user->isInGroup(3)) {
|
||||
if ($session->user->isInGroup(11)) {
|
||||
|
||||
# If the user is only allowed to add users, send them right there.
|
||||
unless (canEdit($session)) {
|
||||
if (canAdd($session)) {
|
||||
return www_editUser($session, undef, "new");
|
||||
}
|
||||
return $session->privilege->adminOnly();
|
||||
else {
|
||||
return $session->privilege->adminOnly();
|
||||
}
|
||||
}
|
||||
|
||||
my %status;
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $output = getUserSearchForm($session,"listUsers");
|
||||
|
|
|
|||
|
|
@ -40,6 +40,20 @@ These methods are available from this class:
|
|||
|
||||
=cut
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminVersionTag") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
@ -86,7 +100,7 @@ An open tag id. This is optional as it normally grabs this value from a form pos
|
|||
|
||||
sub www_editVersionTag {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup(12));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $tagId = shift || $session->form->param("tagId");
|
||||
my $ac = WebGUI::AdminConsole->new($session,"versions");
|
||||
my $i18n = WebGUI::International->new($session,"VersionTag");
|
||||
|
|
@ -113,7 +127,7 @@ sub www_editVersionTag {
|
|||
);
|
||||
my $workflowId = (defined $tag) ? $tag->get("workflowId") : $session->setting->get("defaultVersionTagWorkflow");
|
||||
my $groupId = (defined $tag) ? $tag->get("groupToUse") : "12";
|
||||
if ($session->user->isInGroup("pbgroup000000000000016")) {
|
||||
if (canView($session)) {
|
||||
$f->workflow(
|
||||
value=>$workflowId,
|
||||
type=>"WebGUI::VersionTag",
|
||||
|
|
@ -154,7 +168,7 @@ A reference to the current session.
|
|||
|
||||
sub www_editVersionTagSave {
|
||||
my $session = shift;
|
||||
return $session->session->privilege->insufficient() unless ($session->user->isInGroup(12));
|
||||
return $session->session->privilege->insufficient() unless canView($session);
|
||||
if ($session->form->param("tagId") eq "new") {
|
||||
my $tag = WebGUI::VersionTag->create($session, {
|
||||
name=>$session->form->process("name","text", "Untitled"),
|
||||
|
|
@ -274,14 +288,14 @@ A reference to the current session.
|
|||
|
||||
sub www_manageCommittedVersions {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnlycanView($session);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"versions");
|
||||
my $i18n = WebGUI::International->new($session,"VersionTag");
|
||||
my $rollback = $i18n->get('rollback');
|
||||
my $rollbackPrompt = $i18n->get('rollback version tag confirm');
|
||||
$ac->addSubmenuItem($session->url->page('op=editVersionTag'), $i18n->get("add a version tag"));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageVersions'), $i18n->get("manage versions"));
|
||||
$ac->addSubmenuItem($session->url->page('op=managePendingVersions'), $i18n->get("manage pending versions")) if ($session->user->isInGroup(3));
|
||||
$ac->addSubmenuItem($session->url->page('op=managePendingVersions'), $i18n->get("manage pending versions")) if canView($session);
|
||||
my $output = '<table width="100%" class="content">
|
||||
<tr><th>'.$i18n->get("version tag name").'</th><th>'.$i18n->get("committed on").'</th><th>'.$i18n->get("committed by").'</th><th></th></tr> ';
|
||||
my $paginator = WebGUI::Paginator->new($session, $session->url->page("op=manageCommittedVersions"));
|
||||
|
|
@ -315,12 +329,12 @@ A reference to the current session.
|
|||
|
||||
sub www_managePendingVersions {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"versions");
|
||||
my $i18n = WebGUI::International->new($session,"VersionTag");
|
||||
$ac->addSubmenuItem($session->url->page('op=editVersionTag'), $i18n->get("add a version tag"));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageVersions'), $i18n->get("manage versions"));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageCommittedVersions'), $i18n->get("manage committed versions")) if ($session->user->isInGroup(3));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageCommittedVersions'), $i18n->get("manage committed versions")) if canView($session);
|
||||
my $output = '<table width="100%" class="content">
|
||||
<tr><th>'.$i18n->get("version tag name").'</th></tr> ';
|
||||
my $sth = $session->db->read("select tagId,name,commitDate,committedBy from assetVersionTag where isCommitted=0 and isLocked=1");
|
||||
|
|
@ -349,12 +363,12 @@ A reference to the current session.
|
|||
|
||||
sub www_manageVersions {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup(12));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $ac = WebGUI::AdminConsole->new($session,"versions");
|
||||
my $i18n = WebGUI::International->new($session,"VersionTag");
|
||||
$ac->addSubmenuItem($session->url->page('op=editVersionTag'), $i18n->get("add a version tag"));
|
||||
$ac->addSubmenuItem($session->url->page('op=managePendingVersions'), $i18n->get("manage pending versions")) if ($session->user->isInGroup(3));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageCommittedVersions'), $i18n->get("manage committed versions")) if ($session->user->isInGroup(3));
|
||||
$ac->addSubmenuItem($session->url->page('op=managePendingVersions'), $i18n->get("manage pending versions")) if canView($session);
|
||||
$ac->addSubmenuItem($session->url->page('op=manageCommittedVersions'), $i18n->get("manage committed versions")) if canView($session);
|
||||
my ($tag,$workingTagId) = $session->db->quickArray("select name,tagId from assetVersionTag where tagId=?",[$session->scratch->get("versionTag")]);
|
||||
$tag ||= "None";
|
||||
my $rollback = $i18n->get("rollback");
|
||||
|
|
@ -369,7 +383,7 @@ sub www_manageVersions {
|
|||
my $u = WebGUI::User->new($session,$tag->get("createdBy"));
|
||||
$output .= '<tr>
|
||||
<td>';
|
||||
if ($session->user->isInGroup(3)) {
|
||||
if (canView($session)) {
|
||||
$output .= $session->icon->delete("op=rollbackVersionTag;tagId=".$tag->getId,undef,$rollbackPrompt);
|
||||
}
|
||||
$output .= $session->icon->edit("op=editVersionTag;tagId=".$tag->getId)
|
||||
|
|
@ -410,7 +424,7 @@ sub www_manageRevisionsInTag {
|
|||
my $ac = WebGUI::AdminConsole->new($session,"versions");
|
||||
my $i18n = WebGUI::International->new($session,"VersionTag");
|
||||
$ac->addSubmenuItem($session->url->page('op=editVersionTag'), $i18n->get("add a version tag"));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageCommittedVersions'), $i18n->get("manage committed versions")) if ($session->user->isInGroup(3));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageCommittedVersions'), $i18n->get("manage committed versions")) if canView($session);
|
||||
$ac->addSubmenuItem($session->url->page('op=manageVersions'), $i18n->get("manage versions"));
|
||||
my $output = "";
|
||||
if ($session->form->param("workflowInstanceId")) {
|
||||
|
|
@ -488,7 +502,7 @@ A reference to the current session.
|
|||
|
||||
sub www_rollbackVersionTag {
|
||||
my $session = shift;
|
||||
return $session->privilege->adminOnly() unless $session->user->isInGroup(3);
|
||||
return $session->privilege->adminOnly() unless canView($session);
|
||||
my $tagId = $session->form->process("tagId");
|
||||
return $session->privilege->vitalComponent() if ($tagId eq "pbversion0000000000001");
|
||||
if ($tagId) {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,36 @@ Operation handler for managing workflows.
|
|||
|
||||
=cut
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canRunWorkflow ( session [, user] )
|
||||
|
||||
Returns true if the user can run workflows from this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canRunWorkflow {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminWorkflowRun") );
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canView ( session [, user] )
|
||||
|
||||
Returns true if the user can administrate this operation. user defaults to
|
||||
the current user.
|
||||
|
||||
=cut
|
||||
|
||||
sub canView {
|
||||
my $session = shift;
|
||||
my $user = shift || $session->user;
|
||||
return $user->isInGroup( $session->setting->get("groupIdAdminWorkflow") );
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_activityHelper ( session )
|
||||
|
|
@ -78,7 +108,7 @@ Allows the user to choose the type of workflow that's going to be created.
|
|||
|
||||
sub www_addWorkflow {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session, "Workflow");
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
$f->submit;
|
||||
|
|
@ -117,7 +147,7 @@ Saves the results from www_addWorkflow().
|
|||
|
||||
sub www_addWorkflowSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $workflow = WebGUI::Workflow->create($session, {type=>$session->form->get("type")});
|
||||
return www_editWorkflow($session, $workflow);
|
||||
}
|
||||
|
|
@ -132,7 +162,7 @@ Deletes an entire workflow.
|
|||
|
||||
sub www_deleteWorkflow {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $workflow = WebGUI::Workflow->new($session, $session->form->get("workflowId"));
|
||||
$workflow->delete if defined $workflow;
|
||||
return www_manageWorkflows($session);
|
||||
|
|
@ -148,7 +178,7 @@ Deletes an activity from a workflow.
|
|||
|
||||
sub www_deleteWorkflowActivity {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $workflow = WebGUI::Workflow->new($session, $session->form->get("workflowId"));
|
||||
if (defined $workflow) {
|
||||
$workflow->deleteActivity($session->form->get("activityId"));
|
||||
|
|
@ -170,7 +200,7 @@ A reference to the current session.
|
|||
|
||||
sub www_demoteWorkflowActivity {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $workflow = WebGUI::Workflow->new($session, $session->form->param("workflowId"));
|
||||
$workflow->demoteActivity($session->form->param("activityId"));
|
||||
return www_editWorkflow($session);
|
||||
|
|
@ -187,7 +217,7 @@ Displays displays the editable properties of a workflow.
|
|||
sub www_editWorkflow {
|
||||
my $session = shift;
|
||||
my $workflow = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
$workflow = WebGUI::Workflow->new($session, $session->form->get("workflowId")) unless (defined $workflow);
|
||||
my $i18n = WebGUI::International->new($session, "Workflow");
|
||||
my $workflowActivities = $session->config->get("workflowActivities");
|
||||
|
|
@ -331,7 +361,7 @@ Saves the results of www_editWorkflow()
|
|||
|
||||
sub www_editWorkflowSave {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $workflow = WebGUI::Workflow->new($session, $session->form->param("workflowId"));
|
||||
$workflow->set({
|
||||
enabled => $session->form->get("enabled", "yesNo"),
|
||||
|
|
@ -353,7 +383,7 @@ Displays a form to edit the properties of a workflow activity.
|
|||
|
||||
sub www_editWorkflowActivity {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $activity = '';
|
||||
if ($session->form->process("className","className")) {
|
||||
$activity = WebGUI::Workflow::Activity->newByPropertyHashRef($session, {activityId=>"new",className=>$session->form->process("className","className")});
|
||||
|
|
@ -381,7 +411,7 @@ Saves the results of www_editWorkflowActivity().
|
|||
|
||||
sub www_editWorkflowActivitySave {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $workflow = WebGUI::Workflow->new($session, $session->form->get("workflowId"));
|
||||
if (defined $workflow) {
|
||||
my $activityId = $session->form->get("activityId");
|
||||
|
|
@ -406,7 +436,7 @@ Display a list of the workflows.
|
|||
|
||||
sub www_manageWorkflows {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $i18n = WebGUI::International->new($session, "Workflow");
|
||||
my $output = '<table width="100%">';
|
||||
my $rs = $session->db->read("select workflowId, title, enabled from Workflow order by title");
|
||||
|
|
@ -440,7 +470,7 @@ A reference to the current session.
|
|||
|
||||
sub www_promoteWorkflowActivity {
|
||||
my $session = shift;
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
my $workflow = WebGUI::Workflow->new($session, $session->form->param("workflowId"));
|
||||
$workflow->promoteActivity($session->form->param("activityId"));
|
||||
return www_editWorkflow($session);
|
||||
|
|
@ -458,7 +488,7 @@ sub www_runWorkflow {
|
|||
my $session = shift;
|
||||
$session->http->setMimeType("text/plain");
|
||||
$session->http->setCacheControl("none");
|
||||
unless (isInSubnet($session->env->get("REMOTE_ADDR"), $session->config->get("spectreSubnets")) || $session->user->isInGroup("3")) {
|
||||
unless (isInSubnet($session->env->get("REMOTE_ADDR"), $session->config->get("spectreSubnets")) || canRunWorkflow($session)) {
|
||||
$session->errorHandler->security("make a Spectre workflow runner request, but we're only allowed to accept requests from ".join(",",@{$session->config->get("spectreSubnets")}).".");
|
||||
return "error";
|
||||
}
|
||||
|
|
@ -487,11 +517,11 @@ Display a list of the running workflow instances.
|
|||
sub www_showRunningWorkflows {
|
||||
my $session = shift;
|
||||
|
||||
return $session->privilege->insufficient() unless ($session->user->isInGroup("pbgroup000000000000015"));
|
||||
return $session->privilege->insufficient() unless canView($session);
|
||||
|
||||
my $i18n = WebGUI::International->new($session, "Workflow");
|
||||
my $ac = WebGUI::AdminConsole->new($session,"workflow");
|
||||
my $isAdmin = $session->user->isInGroup("3");
|
||||
my $isAdmin = canRunWorkflow($session);
|
||||
|
||||
# javascript for creating/showing/hiding the edit priority form
|
||||
my $cancel = $i18n->get('edit priority cancel');
|
||||
|
|
|
|||
|
|
@ -3591,6 +3591,251 @@ LongTruncOk=1</p>
|
|||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
'permissions' => {
|
||||
message => q{Permissions},
|
||||
lastUpdated => 0,
|
||||
context => q{The label for the Permissions tab of the Settings Admin panel},
|
||||
},
|
||||
|
||||
'settings groupIdAdminActiveSessions label' => {
|
||||
message => q{Active Sessions},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminActiveSessions hoverHelp' => {
|
||||
message => q{Group to view and expire active sessions.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminAdSpace label' => {
|
||||
message => q{AdSpace},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminAdSpace hoverHelp' => {
|
||||
message => q{Group to manage advertising.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminCache label' => {
|
||||
message => q{Cache},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminCache hoverHelp' => {
|
||||
message => q{Group to view and flush cache.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminCommerce label' => {
|
||||
message => q{Commerce},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminCommerce hoverHelp' => {
|
||||
message => q{Group to manage Commerce settings.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminCron label' => {
|
||||
message => q{Cron},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminCron hoverHelp' => {
|
||||
message => q{Group to manage scheduled workflows.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminDatabaseLink label' => {
|
||||
message => q{Database Link},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminDatabaseLink hoverHelp' => {
|
||||
message => q{Group to manage database links.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminGraphics label' => {
|
||||
message => q{Graphics},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminGraphics hoverHelp' => {
|
||||
message => q{Group to manage fonts and palettes.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminGroup label' => {
|
||||
message => q{Groups},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminGroup hoverHelp' => {
|
||||
message => q{Group to manage all groups.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminGroupAdmin label' => {
|
||||
message => q{Groups (limited)},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminGroupAdmin hoverHelp' => {
|
||||
message => q{Group to manage groups that user is administrator of.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminHelp label' => {
|
||||
message => q{Help},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminHelp hoverHelp' => {
|
||||
message => q{Group that can view help.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminLDAPLink label' => {
|
||||
message => q{LDAP},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminLDAPLink hoverHelp' => {
|
||||
message => q{Group to manage LDAP links.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminLoginHistory label' => {
|
||||
message => q{Login History},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminLoginHistory hoverHelp' => {
|
||||
message => q{Group to view login history.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminProductManager label' => {
|
||||
message => q{Products},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminProductManager hoverHelp' => {
|
||||
message => q{Group to manage products},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminProfileSettings label' => {
|
||||
message => q{User Profiling},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminProfileSettings hoverHelp' => {
|
||||
message => q{Group to manage user profile fields.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminReplacements label' => {
|
||||
message => q{Content Filters},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminReplacements hoverHelp' => {
|
||||
message => q{Group to manage content filters.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminSpectre label' => {
|
||||
message => q{Spectre},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminSpectre hoverHelp' => {
|
||||
message => q{Group to view Spectre status},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminStatistics label' => {
|
||||
message => q{Statistics},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminStatistics hoverHelp' => {
|
||||
message => q{Group to view statistics},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminSubscription label' => {
|
||||
message => q{Subscriptions},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminSubscription hoverHelp' => {
|
||||
message => q{Group to manage subscriptions.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminTransactionLog label' => {
|
||||
message => q{Transactions},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminTransactionLog hoverHelp' => {
|
||||
message => q{Group to manage transactions.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminUser label' => {
|
||||
message => q{Users},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminUser hoverHelp' => {
|
||||
message => q{Group to manage users. Can add and edit users.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminUserAdd label' => {
|
||||
message => q{Users (add only)},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminUserAdd hoverHelp' => {
|
||||
message => q{Group that can only add new users.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminVersionTag label' => {
|
||||
message => q{Version Tags},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminVersionTag hoverHelp' => {
|
||||
message => q{Group to manage version tags},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminWorkflow label' => {
|
||||
message => q{Workflow},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminWorkflow hoverHelp' => {
|
||||
message => q{Group to manage workflows},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
|
||||
'settings groupIdAdminWorkflowRun label' => {
|
||||
message => q{Workflow (run)},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
'settings groupIdAdminWorkflowRun hoverHelp' => {
|
||||
message => q{Group that is allowed to run workflows from the admin console.},
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
'wiki help label leadin' => {
|
||||
message => q{For more help, visit the},
|
||||
lastUpdated => 1185162265,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue