0

I have a situation where I'd like to use Sails' create blueprint on a Model. However, I need to access a session variable on that create:

URL: /api/myModel/create [post]

Model: module.exports = {

    adapter: 'mongo',
    schema: true,
    attributes: {
        user: {
            model:'user',
            required:true,
            index:true
        },
        item: {
            model:'item',
            required:true,
            index:true
        },
        quantity: {
            required:true,
            type: 'integer',
            defaultsTo: 1,
            min: 0
        },
        size: {
            required:true,
            type:'string'
        },
        container: {
            required:true,
            type:'string'
        },
        dateManuf: {
            required:true,
            date:true
        }
    },
    beforeValidation:function(values, next) {
        /* I want to automatically set the logged in 
           USERID here */

        next();
    }
};

I want to automatically set the value of the logged in user session userid in the field. Do I have to create my own custom route/controller action to do that to properly have access to the "req" field?

  • possible duplicate of [SailJS Use session param in model](http://stackoverflow.com/questions/22853179/sailjs-use-session-param-in-model) – sgress454 Jun 27 '14 at 17:44

1 Answers1

0

It is a duplicate of sails.js Use session param in model, so the answer is no. However you have a few options. You can set this value in policies, or you can rewrite blueprint actions to do this. I also require the session user to attach to all models and do it this way.

For instance this in a policy will set a userId on any blueprint create action

req.query.userId = req.session.userId; 
Community
  • 1
  • 1
Meeker
  • 5,979
  • 2
  • 20
  • 38