gadicohen:config

v0.0.4Published 10 years ago

This package has not had recent updates. Please investigate it's current state before committing to using it in your project.

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:

1config.allow = function(key, value) {
2	var user = Meteor.users.findOne(this.userId);
3	return !!user.isAdmin;
4}

For specific keys:

1config.add('serverStopped', false, function(key, value) {
2	var user = Meteor.users.findOne(this.userId);
3	return !!user.isAdmin;	
4});