RT-Extension-ModifyUsersPrefs

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

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)

SIGNATURE  view on Meta::CPAN

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 )