Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2010-04-11 16:47:14

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 7,586
Website

smd_faux_role: switch priv levels on-the-fly

In response to a request by whaleen this simple plugin adds a dropdown control to your Textpattern admin side allowing nominated users to alter their own priv level. This obviates the need for multiple accounts of different types, repeated logging in/out or having multiple browser tabs & windows open while you are testing a site for functionality. Just switch your own user between priv levels and walk the admin side as the great unwashed.

Since this is pretty dangerous territory for regular users — and the plugin is likely only to be used during testing — there is no pretty configuration interface. You specify the user accounts and placement of the dropdown directly in the plugin code itself. It’s all documented in the help and in the plugin source code so you can’t go wrong.

Download it now. Hope this one proves useful. Thanks to whaleen for the original idea and the incremental improvements that led to the first public version.

Revision history
————————

All available versions and changes are listed here. Each entry indexes the relevant post(s) in the thread to learn about the features.

Last edited by Bloke (2010-11-05 09:42:04)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#2 2010-04-12 15:41:13

jan
Member
From: Utrecht, The Netherlands
Registered: 2006-08-31
Posts: 71
Website

Re: smd_faux_role: switch priv levels on-the-fly

Definitely gonna use this for testing user levels!


Kensington TXP powered rock

Offline

#3 2010-04-12 15:58:42

masa
Member
From: Reykjavik, Iceland
Registered: 2005-11-25
Posts: 1,087

Re: smd_faux_role: switch priv levels on-the-fly

Excellent, indeed – another smd-must-have!

Offline

#4 2010-08-06 21:01:04

net-carver
Member
From: UK
Registered: 2006-03-08
Posts: 1,648

Re: smd_faux_role: switch priv levels on-the-fly

Just don’t log out of your account when your priv levels are demoted — you’ll be in for a shock when you log in again. :)


Steve
Textile | My plugins on GitHub | @netcarver

Offline

#5 2010-08-06 21:13:03

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 7,586
Website

Re: smd_faux_role: switch priv levels on-the-fly

net-carver wrote:

Just don’t log out of your account when your priv levels are demoted — you’ll be in for a shock when you log in again. :)

I tried to fix this last night. You know what; I don’t think it can be fixed at the moment :-(

I added a callback on head_end — the earliest admin-side hook I can get my hands on — and it runs fine on every page. But as soon as you click logout, the callback isn’t fired. My guess is that once you’re on that login page and no plugins are permitted to run, that really is game over. I was hoping to intercept the logout just moments before it did the actual logout procedure so I could revert the current account to Publisher but it’s not possible, afaict.

I wondered if there’s room for an on-logout (and on-login) callback but I’m not sure a plugin would even fire at that point (well, on-logout at least — the other one’s fine). It would have to be very, very early in page execution — before doAuth() was called — and I’m not sure that’s possible because plugins are always loaded afterwards.

Ideas on ways round this accepted, preferably scrawled on a beermat.

Last edited by Bloke (2010-08-06 21:16:05)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#6 2010-08-06 21:30:06

net-carver
Member
From: UK
Registered: 2006-03-08
Posts: 1,648

Re: smd_faux_role: switch priv levels on-the-fly

Hmmm. A couple of non-elegant ideas come to mind…

  • Use an output buffer to re-write all the admin-side logout URLs to a handler in your plugin and then have that restore the privs and really logout.
  • Have the logout link generated by a function call and add something like a pluggable_ui callback to that. Would need to force all theme authors to update themes to use that function though with some severe consequences if they didn’t — just kidding.

…not pretty. If I have any better ideas I’ll let you know.


Steve
Textile | My plugins on GitHub | @netcarver

Offline

#7 2010-08-06 21:35:48

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 7,586
Website

Re: smd_faux_role: switch priv levels on-the-fly

net-carver wrote:

Use an output buffer to re-write all the admin-side logout URLs to a handler in your plugin

Actually, you might be onto something here, thanks. A simple bit of jQuery could either:

  1. attach a handler to the logout link which fires an AJAX request to my plugin before the actual logout is executed
  2. completely commandeer the logout link to redirect to my plugin, whereupon I do what I need to do and then refresh the page with ?logout=1 on the end

I might try option 1 and see how far I get since it’s the most elegant of the two (assuming it can trigger in time). Option 2 is a fallback.

EDIT: The sticking point might be if a theme has removed the logout link or renamed its ID; the guidelines in the wiki do advise against this but it’s a remote possibility.

Last edited by Bloke (2010-08-06 21:43:19)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#8 2010-08-06 21:49:39

net-carver
Member
From: UK
Registered: 2006-03-08
Posts: 1,648

Re: smd_faux_role: switch priv levels on-the-fly

Stef,

sorry but no inspiration here. You’re right — jQuery is a better option here than an output buffer routine.


Steve
Textile | My plugins on GitHub | @netcarver

Offline

#9 2010-11-05 09:41:01

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 7,586
Website

Re: smd_faux_role: switch priv levels on-the-fly

v0.20 is out. Requires TXP 4.3.0+

Bug fix to restore the Publisher privs on the currently logged-in account if you hit the logout button. Should stop frustration and having to go into phpMyAdmin to restore your own privs.

Remember to reset your publisher names at the top of the plugin after you’ve upgraded and to set any position offset if you had it set up that way.

Last edited by Bloke (2010-11-05 09:44:01)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#10 2012-11-18 05:28:08

bici
Member
From: vancouver
Registered: 2004-02-24
Posts: 1,033
Website

Re: smd_faux_role: switch priv levels on-the-fly

I am no longer able to login and see my Admin, Extensions, Plugins, etc tabs.

I was testing out various access options using Switch Role plugin, and while i was switched to “Staff Writer” I logout… but when i try to logon again as Admin my Admin ID is still stuck i nstaff writer!! I can i reset. I can’t login to see admin tabs?

NOTE: i have 0.20 installed
(‘smd_faux_role’,1,‘Stef Dawson’,‘stefdawson.com/’,‘0.20’,‘Switch user privs on the fly so you can see what other accounts see’


…. texted postive

Offline

Board footer

Powered by FluxBB