[%# Manage privileges for a given user, or see who has a given privilege. # # Authors: # Amy Hendrix -- original page # Jen Griffin -- TT conversion # # Copyright (c) 2009-2020 by Dreamwidth Studios, LLC. # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. For a copy of the license, please # reference 'perldoc perlartistic' or 'perldoc perlgpl'. # %] [%- sections.title='.title' | ml -%] [%- sections.head = BLOCK %] [% END %] [%- CALL dw.active_resource_group( "foundation" ) -%] [%- INCLUDE components/errors.tt errors = success style = 'success' -%]

<< [% '.header.viewuser' | ml( user = u.ljuser_display( head_size = "24x24" ) ) %]

[% dw.form_auth %] [% form.hidden( name = 'user', value = u.user ) %] [% form.hidden( name = 'mode', value = 'userchange' ) %] [%- IF userprivs.size -%] [%- FOREACH priv IN userprivs; pinfo = priv_by_id.${priv.prlid}; pcode = pinfo.privcode; can_grant = remote_can_grant( pcode, priv.arg ); NEXT UNLESS pinfo.is_public || remote.equals( u ) || can_grant -%] [%- END -%]
[% '.col.revoke' | ml %] [% '.col.priv' | ml %] [% '.col.arg' | ml %]
[% IF can_grant; form.checkbox( name = "revoke:${priv.prmid}:${u.id}", selected = 0 ); ELSE; "--"; END %] { priv => pcode } ) %]'> [% pcode %] [%- IF priv.arg -%] { priv => pcode, viewarg => priv.arg } ) %]'> [% priv.arg | html %] [%- ELSE; ' '; END -%]
[%- ELSE -%]

[% '.txt.noprivs' | ml %]

[%- END -%]

[%- IF remote.has_priv( 'admin' ) -%] [% form.select( label = dw.ml( '.label.privmenu', { user => u.ljuser_display } ), noescape = 1, name = 'grantpriv', items = privmenu ) %] [% form.textbox( label = dw.ml( '.label.arg' ), name = 'arg', size = 20, maxlength = 40 ) %] [%- IF pkgmenu.size > 2; # not counting empty top selection -%]

[% form.select( label = dw.ml( '.label.pkgmenu' ), name = 'grantpkg', items = pkgmenu ) %] [%- END -%] [%- ELSE -%] [% '.txt.noadmin' | ml %] [%- END -%]

[%- IF remote.has_priv( 'admin' ) -%] [% form.submit( name = 'submit:change', value = dw.ml( '.btn.changes' ) ) %] [%- END -%] [% form.submit( name = 'submit:refresh', value = dw.ml( '.btn.refresh' ) ) %]