RT-Extension-ModifyUsersPrefs
view release on metacpan or search on metacpan
lib/RT/Extension/ModifyUsersPrefs.pm
lib/RT/Extension/ModifyUsersPrefs/Test.pm.in
LICENSE
Makefile.PL
MANIFEST This list of files
META.yml
po/fr.po
README
README.md
xt/00-load.t
xt/modify-users-prefs.t
SIGNATURE Public-key signature (added by MakeMaker)
SHA256 a7c5323f81fc052097b0470bd3e6e7e2de2ac9d90c59646948d89c4c7e46cfe6 inc/Module/Install/RTx/Runtime.pm
SHA256 53825bc78e4c910b888160bc148c8bc211be58e02b99c8edcbf4854f95faa049 inc/Module/Install/ReadmeFromPod.pm
SHA256 be36753441f18072742b266bebcc036aac2f06d8e2b48055eec78d83c21e515a inc/Module/Install/Substitute.pm
SHA256 4c746c02c5cc19bed4c352e76205b4adff4c45ce8310d71294e1b83c059659c2 inc/Module/Install/Win32.pm
SHA256 d3d9b4583243c470ae895defa4c44564485b53693cba1c50ab0320768f443e97 inc/Module/Install/WriteAll.pm
SHA256 7c4ad7f9916feb5fa7e045af6ac6ecf8230942c18576c100509f978f6504a1db inc/YAML/Tiny.pm
SHA256 afc3abefe7c1984b41b92a6a7f0a3ebc4b25e6357a34ae8ced6a0b376769c9e8 lib/RT/Extension/ModifyUsersPrefs.pm
SHA256 2162e2e3e0ba95c875b6658371cae80e1ad7e0413e851ee9e783d1da92b72062 lib/RT/Extension/ModifyUsersPrefs/Test.pm.in
SHA256 27b7ed56c8d5d4b61b73de100bd9222f152552d38986d4610451093e4c94b994 po/fr.po
SHA256 1667db99ab46ee71072ed6dfed255b8f01407aa0db74aa4d1423d3aacb86774c xt/00-load.t
SHA256 1cd652f21d1c89c0dc3edf1810007b14d216c3f9d5fce2672d081380a6e3f6fb xt/modify-users-prefs.t
html/Callbacks/RT-Extension-ModifyUsersPrefs/Elements/Tabs/Privileged view on Meta::CPAN
# Add a Preferences option to the user menu bar:
my $request_path = $HTML::Mason::Commands::r->path_info;
$request_path =~ s!/{2,}!/!g;
if ($session{'CurrentUser'}->HasRight(Right => 'AdminUsers', Object => RT->System) and $session{'CurrentUser'}->HasRight(Right => 'ShowConfigTab', Object => RT->System) and $request_path =~ m{^(/Admin/Users|/User/(Summary|History)\.html)}) {
if ( $DECODED_ARGS->{'id'} && $DECODED_ARGS->{'id'} =~ /^\d+$/ ) {
my $id = $DECODED_ARGS->{'id'};
my $obj = RT::User->new( $session{'CurrentUser'} );
$obj->Load($id);
if ( $obj and $obj->id ) {
my $tabs = PageMenu()->child( 'userprefs' =>
title => loc('Preferences'),
description => loc('Set preferences for this user.'),
path => "/Admin/Users/Prefs.html?id=" . $id,
);
}
}
}
</%INIT>
xt/modify-users-prefs.t view on Meta::CPAN
use Test::WWW::Mechanize;
# Create user
my $user = RT::Test->load_or_create_user(Name => 'user', Password => 'password');
ok(RT::Test->set_rights({Principal => $user, Right => [qw(ModifySelf)]}), 'Set ModifySelf right');
# Login root
my ($base, $m) = RT::Extension::ModifyUsersPrefs::Test->started_ok;
ok($m->login('root', 'password'), 'Logged in root');
# Modify user's prefs
$m->get_ok($m->rt_base_url . 'Admin/Users/Modify.html?id=' . $user->id, 'Modify user');
my $user_id = $user->id;
$m->content_like(qr{<li id="li-page-userprefs"[^>]*><a id="page-userprefs" class="menu-item[^"]*" href="/Admin/Users/Prefs\.html\?id=$user_id">Preferences</a></li>}, "Menu link to user's prefs");
$m->follow_link_ok({ id => 'page-userprefs' }, 'Modify user prefs link');
$m->submit_form_ok(
{
form_name => "ModifyUsersPreferences",
fields => {EmailFrequency => 'Suspended'},
button => 'Update'},
'Submit form'
);
$m->content_contains('Preferences saved', 'Preferences saved');
# Logout root
$m->get_ok($m->rt_base_url . 'NoAuth/Logout.html', 'Logout root');
# Login user
ok($m->login('user', 'password'), 'Logged in user');
# Check user's prefs
$m->get_ok($m->rt_base_url . 'Prefs/Other.html', "Get user's own prefs");
my $prefs_form = $m->form_name('ModifyPreferences');
is($m->value('EmailFrequency'), 'Suspended', 'Email frequency correctly set');
( run in 0.818 second using v1.01-cache-2.11-cpan-5a3173703d6 )