- NOTE: This package is not maintained anymore.
- If you want to help, please reach out to [email protected]
Let admins impersonate other users
meteor add gwendall:impersonate
Impersonate
Set a [data-impersonate] attribute with the id of the user to impersonate on a DOM element.
<button data-impersonate="{{someUser._id}}">Click to impersonate</button>
Un-impersonate
Set a [data-unimpersonate] attribute to a DOM element.
<button data-unimpersonate>Click to unimpersonate</button>
isImpersonating
{{#if isImpersonating}}
<button data-unimpersonate>Click to unimpersonate</button>
{{else}}
<button data-impersonate="{{_id}}">Click to impersonate</button>
{{/if}}
Should you need to use callbacks, use the JS methods directly.
Impersonate.do(userId, callback)
var userId = "...";
Impersonate.do(userId, function(err, userId) {
if (err) return;
console.log("You are now impersonating user #" + userId);
});
Impersonate.undo(callback)
Impersonate.undo(function(err, userId) {
if (err) return;
console.log("Impersonating no more, welcome back #" + userId);
})
By default, the package will grant users in the "admins" group (through alanning:roles) the possibility to impersonate other users. You can also set any of the two following parameters to define your own impersonation roles.
- User role
Impersonate.admins = ["masters", "bosses"];
- User group
Impersonate.adminGroups = [
{ role: "masters", group: "group_A" },
{ role: "bosses", group: "group_B" }
];
- Uses alanning:roles. If the user trying to impersonate is not an admin, a server error will be returned.
- Built upon David Weldon's post