https://github.com/gadicc/meteor-config
Set config variables from the client (with security)
https://github.com/gadicc/meteor-config
Last synced: 11 months ago
JSON representation
Set config variables from the client (with security)
- Host: GitHub
- URL: https://github.com/gadicc/meteor-config
- Owner: gadicc
- Created: 2014-02-16T16:11:12.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-06-27T17:07:41.000Z (almost 12 years ago)
- Last Synced: 2025-02-17T21:19:06.535Z (over 1 year ago)
- Language: JavaScript
- Size: 193 KB
- Stars: 0
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
Awesome Lists containing this project
README
# config
A very small library to conveniently allow user-settable configuration
for the WebApp, with security.
## Setup
Always define your allowed variables like this:
`config.add(key [, initValue] [, allowCallback])`
If the key does not exist in the database, it will be added with
`initValue`. See SECURITY below for the allowCallback.
## Anywhere (Client/Server)
* `config.set(key, value)` - set the value of a previously added key.
On the client this will only succeed if allowed, see SECURITY below.
* `config.get(key)` - get the value of a previously added key
## Security
By default, any key can be set by a logged in user. You can override
this behaviour, by setting `config.allow = function(key, value)`.
You can also override the allow function for a particular key. When
defining the key, use `config.add(key, initValue, allowCallback)`,
which is called as `allowCallBack(key, value)`.
In both cases, return `true` to allow the set, and `false` to deny.
Note, `this` will be as per the regular this keyword in Meteor Methods,
so you can use `this.userId`.
e.g.
For all keys:
```js
config.allow = function(key, value) {
var user = Meteor.users.findOne(this.userId);
return !!user.isAdmin;
}
```
For specific keys:
```js
config.add('serverStopped', false, function(key, value) {
var user = Meteor.users.findOne(this.userId);
return !!user.isAdmin;
});
```