An open API service indexing awesome lists of open source software.

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

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