GroupText macro now returns an error message if group cannot be found. includes test
This commit is contained in:
parent
2555a7d5b4
commit
3dd45bad6d
4 changed files with 24 additions and 9 deletions
|
|
@ -1,5 +1,6 @@
|
|||
7.0.2
|
||||
- fix: upgrade from 6.99.4-6.99-5 can fail if site contains groups tied to ldap with no users in it.
|
||||
- GroupText macro returns an error message if it can't find the group by the name the user supplies.
|
||||
|
||||
|
||||
7.0.1
|
||||
|
|
|
|||
|
|
@ -42,13 +42,17 @@ Text to be shown to someone not in the group.
|
|||
#-------------------------------------------------------------------
|
||||
sub process {
|
||||
my $session = shift;
|
||||
my @param = @_;
|
||||
my ($groupId) = $session->dbSlave->quickArray("select groupId from groups where groupName=".$session->db->quote($param[0]));
|
||||
$groupId = 3 if ($groupId eq "");
|
||||
if ($session->user->isInGroup($groupId)) {
|
||||
return $param[1];
|
||||
} else {
|
||||
return $param[2];
|
||||
my ($groupName, $inGroupText, $outGroupText ) = @_;
|
||||
my ($groupId) = $session->dbSlave->quickArray("select groupId from groups where groupName=?",[$groupName]);
|
||||
if ($groupId eq "") {
|
||||
my $i18n = WebGUI::International->new($session, 'Macro_GroupText');
|
||||
return sprintf $i18n->get('group not found'), $groupName
|
||||
}
|
||||
elsif ($session->user->isInGroup($groupId)) {
|
||||
return $inGroupText;
|
||||
}
|
||||
else {
|
||||
return $outGroupText;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ our $I18N = {
|
|||
lastUpdated => 1128838520,
|
||||
},
|
||||
|
||||
'group not found' => {
|
||||
message => q|Group %s was not found|,
|
||||
lastUpdated => 1112466408,
|
||||
context => q|Error message when a group is not found during a by-name lookup of groups.|,
|
||||
},
|
||||
|
||||
'group text title' => {
|
||||
message => q|Group Text Macro|,
|
||||
lastUpdated => 1112466408,
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@ my $session = WebGUI::Test->session;
|
|||
|
||||
use Test::More; # increment this value for each test you create
|
||||
|
||||
plan tests => 2 + 4;
|
||||
plan tests => 4 + 4;
|
||||
|
||||
unless ($session->config->get('macros')->{'GroupText'}) {
|
||||
Macro_Config::insert_macro($session, 'GroupText', 'GroupText');
|
||||
}
|
||||
|
||||
my $macroText = q!^GroupText("Admin","admin","visitor");!;
|
||||
my $macroText = q!^GroupText("Admins","admin","visitor");!;
|
||||
my $output;
|
||||
|
||||
$session->user({userId => 1});
|
||||
|
|
@ -42,6 +42,10 @@ $output = $macroText;
|
|||
WebGUI::Macro::process($session, \$output);
|
||||
is($output, 'admin', 'user is admin');
|
||||
|
||||
$output = q!^GroupText("Not a Group","in group","outside group");!;
|
||||
WebGUI::Macro::process($session, \$output);
|
||||
is($output, 'Group Not a Group was not found', 'Non-existant group returns an error message');
|
||||
|
||||
##Bug test setup
|
||||
|
||||
##Create a small database
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue