diff options
author | Brion Vibber <brion@pobox.com> | 2010-03-03 15:43:49 -0800 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-03-03 15:43:49 -0800 |
commit | 4a2511139eaafcbe93a2e720e0c6f170ecb00d77 (patch) | |
tree | 1b9abf6fcd9db6a4d785871352dd7eb20ae35b82 /lib/userprofile.php | |
parent | 06db00d303bda500eec578b490c12d2bf389c853 (diff) |
Initial user role controls on profile pages, for owner to add/remove administrator and moderator options.
Buttons need to be themed.
Diffstat (limited to 'lib/userprofile.php')
-rw-r--r-- | lib/userprofile.php | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/userprofile.php b/lib/userprofile.php index 43dfd05be..8464c2446 100644 --- a/lib/userprofile.php +++ b/lib/userprofile.php @@ -346,6 +346,16 @@ class UserProfile extends Widget $this->out->elementEnd('ul'); $this->out->elementEnd('li'); } + + if ($cur->hasRight(Right::GRANTROLE)) { + $this->out->elementStart('li', 'entity_role'); + $this->out->element('p', null, _('User role')); + $this->out->elementStart('ul'); + $this->roleButton('administrator', _m('role', 'Administrator')); + $this->roleButton('moderator', _m('role', 'Moderator')); + $this->out->elementEnd('ul'); + $this->out->elementEnd('li'); + } } } @@ -359,6 +369,22 @@ class UserProfile extends Widget } } + function roleButton($role, $label) + { + list($action, $r2args) = $this->out->returnToArgs(); + $r2args['action'] = $action; + + $this->out->elementStart('li', "entity_role_$role"); + if ($this->user->hasRole($role)) { + $rf = new RevokeRoleForm($role, $label, $this->out, $this->profile, $r2args); + $rf->show(); + } else { + $rf = new GrantRoleForm($role, $label, $this->out, $this->profile, $r2args); + $rf->show(); + } + $this->out->elementEnd('li'); + } + function showRemoteSubscribeLink() { $url = common_local_url('remotesubscribe', |