Roles List in your own profile
-
Hi
thanks for this neat little plugin, replacing another unmaintained one!
However, lacking hooks to modify the behaviour on showing roles on your own profile , I had to modify your controller checklist. But I’d rather have you offering an option in settings:Issue:
1. If I check my profile (being admin) I see nothing, as this seems to return false:
$this->model->can_update_roles()
As amdin I am sure I can edit my roles as I am admin and it works!
of course, it is tried to prevent, that user can change their roles, which is fine, but as an admin I want to see it for me AND
2. users shall be able to also check their roles (readonly), so I did:public function output_checklist( $user ) { $writable = $this->model->can_update_roles(); #if ( !$this->model->can_update_roles() ) return; wp_nonce_field( 'update-md-multiple-roles', 'md_multiple_roles_nonce' ); $roles = $this->model->get_roles(); $user_roles = $user->roles; if($writable) include( MDMR_PATH . 'views/checklist.html.php' ); else include( MDMR_PATH . 'views/checklist_r.html.php' ); }
and in template checklist_r.html.php simply
<?php /** * Output the roles checklist. * * @var $roles array All WordPress roles in name => label pairs. * @var $user_roles array An array of role names belonging to the current user. */ ?><h3>Permissions</h3> <table class="form-table"> <tr> <th>Roles</th> <td> <?php foreach( $roles as $name => $label ) : ?> <label for="md-multiple-roles-<?php echo $name; ?>"> <?php $hasIt = in_array( $name, $user_roles ) ?> <?php if($hasIt) echo "<b class='roleMember'>$name</b>"; else echo "<span class='notMember'>$label</span>"; ?> </label> <br /> <?php endforeach; ?> </td> </tr> </table>
Any chance to have this (or similar) in your code natively?
Thanks you
- The topic ‘Roles List in your own profile’ is closed to new replies.