0.2.0 • Published 11 years ago

url-whitelist v0.2.0

Weekly downloads
5
License
-
Repository
github
Last release
11 years ago

url-whitelist

create whitelists by including and excluding url patterns and check urls against them

see url-pattern for supported url patterns

Installation

npm install git://github.com/snd/url-whitelist.git

Usage

Require it

Whitelist = require 'url-whitelist'

Make a new whitelist

whitelist = new Whitelist

Whitelist a url pattern

whitelist.include '/users/:id'

Check whether urls are on the whitelist

whitelist.check '/users/1' # => true
whitelist.check '/projects/1' # => false

Advanced Usage

Blacklisting

by default a whitelist excludes everything. to include everything by default and then selectively exclude do:

blacklist = new Whitelist
blacklist.include '*'

blacklist.exclude '/users/:id'

blacklist.check 'sajdflkasjdfl' # => true
blacklist.check '/users/:id' # => false
blacklist.check 'skljdf' # => true

Example

whitelist /projects/* except for /projects/hidden/* and projects/:id/secret. also whitelist /users/:id

Whitelist = require 'whitelist'

whitelist = new Whitelist

whitelist.include '/projects/*'
whitelist.exclude '/projects/hidden/*'
whitelist.exclude '/projects/:id/secret'
whitelist.include '/users/:id'

whitelist.check '/projects/foo/bar/baz' # => true
whitelist.check '/projects/hidden/bar/baz' # => false
whitelist.check '/projects/5/secret' # => false
whitelist.check '/projects/5/secret/foo' # => true

whitelist.check '/users' # => false
whitelist.check '/users/5' # => true

whitelist.check '/tasks/57' # => false

How check works (pseudocode)

whitelisted = false
go through all include- and exclude-patterns in the order they were defined:
    if url matches pattern
        if is include
            whitelisted = true
        else
            whitelisted = false

License

url-whitelist is released under the MIT License (see LICENSE for details).