https://github.com/gwendall/meteor-impersonate
Let admins impersonate other users
https://github.com/gwendall/meteor-impersonate
Last synced: about 2 months ago
JSON representation
Let admins impersonate other users
- Host: GitHub
- URL: https://github.com/gwendall/meteor-impersonate
- Owner: gwendall
- Created: 2015-02-05T15:53:46.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-10-11T11:42:08.000Z (over 6 years ago)
- Last Synced: 2025-04-04T22:46:58.942Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 36
- Watchers: 3
- Forks: 29
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
```diff
- NOTE: This package is not maintained anymore.
- If you want to help, please reach out to [email protected]
```Meteor Impersonate
================Let admins impersonate other users
Installation
------------``` sh
meteor add gwendall:impersonate
```DOM helpers
-----------**Impersonate**
Set a [data-impersonate] attribute with the id of the user to impersonate on a DOM element.
``` html
Click to impersonate
```**Un-impersonate**
Set a [data-unimpersonate] attribute to a DOM element.
``` html
Click to unimpersonate
```UI helpers
----------**isImpersonating**
``` html
{{#if isImpersonating}}
Click to unimpersonate
{{else}}
Click to impersonate
{{/if}}
```Client Methods
-------Should you need to use callbacks, use the JS methods directly.
**Impersonate.do(userId, callback)**
``` javascript
var userId = "...";
Impersonate.do(userId, function(err, userId) {
if (err) return;
console.log("You are now impersonating user #" + userId);
});
```**Impersonate.undo(callback)**
``` javascript
Impersonate.undo(function(err, userId) {
if (err) return;
console.log("Impersonating no more, welcome back #" + userId);
})
```Server Methods
-------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
``` javascript
Impersonate.admins = ["masters", "bosses"];
```- User group
``` javascript
Impersonate.adminGroups = [
{ role: "masters", group: "group_A" },
{ role: "bosses", group: "group_B" }
];
```Notes
------ Uses alanning:roles. If the user trying to impersonate is not an admin, a server error will be returned.
- Built upon [David Weldon](https://dweldon.silvrback.com/impersonating-a-user)'s post