Example #1
0
    map:function(doc){
	var _ = require("views/lib/underscore");
	require("views/lib/underscore_extended");
	var user_roles_obj = _.chain(doc.roles).filter(_.isObj).merge().value();
	var store=user_roles_obj.store_id,
	group=user_roles_obj.group_id,
	company=user_roles_obj.company_id;
	_.chain([store,group,company])
	    .compact()
	    .each(function(id){
		      emit(id,1)
		  });
    }
Example #2
0
    map:function(doc){
	var _ = require("views/lib/underscore");
	require("views/lib/underscore_extended");
	var user_roles_obj = _.chain(doc.roles).filter(_.isObj).merge().value();
	var store=user_roles_obj.store_id,
	group=user_roles_obj.group_id,
	company=user_roles_obj.company_id;
	var most_specific_id = _.either(store,group,company)
	if(most_specific_id){
	    emit(most_specific_id,1);
	}
    }
Example #3
0
ddoc.filters.forLocation = function(user, req) {
    var _ = require("views/lib/underscore");
    require("views/lib/underscore_extended")

    var locations = _.chain(user.roles)
	.filter(_.isObject)
	.mapSelectKeys('company_id','group_id','store_id')
	.map(_.toArray)
	.flatten()
	.value();

    log(locations);

    //assume that any of the values in the request could represent location information.
    return _.any(req.query,function(requestLocationID){
		return _.contains(locations,requestLocationID);
	    });
};