{"_id":"@ampatspell/ember-cli-relax-session","_rev":"5-fc012a424291fba4e50e0668726d398d","name":"@ampatspell/ember-cli-relax-session","description":"Relax session ember-cli addon","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@ampatspell/ember-cli-relax-session","version":"0.0.1","description":"Relax session ember-cli addon","directories":{"doc":"doc","test":"tests"},"scripts":{"start":"ember server","build":"ember build","test":"ember try:testall"},"repository":{"type":"git","url":"https://bitbucket.org/ampatspell/ember-cli-relax-session"},"engines":{"node":">= 0.10.0"},"author":"","license":"MIT","devDependencies":{"broccoli-asset-rev":"^2.0.2","ember-cli":"1.13.1","ember-cli-app-version":"0.4.0","ember-cli-content-security-policy":"0.4.0","ember-cli-dependency-checker":"^1.0.0","ember-cli-htmlbars":"0.7.9","ember-cli-htmlbars-inline-precompile":"^0.1.1","ember-cli-ic-ajax":"0.2.1","ember-cli-inject-live-reload":"^1.3.0","ember-cli-qunit":"0.3.15","ember-cli-release":"0.2.3","ember-cli-uglify":"^1.0.1","ember-data":"1.13.5","ember-disable-prototype-extensions":"^1.0.0","ember-disable-proxy-controllers":"^1.0.0","ember-export-application-global":"^1.0.2","ember-local-storage":"0.0.5","ember-try":"0.0.6"},"keywords":["ember-addon","relax","session","authentication","authorization","acl"],"dependencies":{"ember-cli-babel":"^5.0.0"},"ember-addon":{"configPath":"tests/dummy/config"},"_id":"@ampatspell/ember-cli-relax-session@0.0.1","_shasum":"ac996ac29c19dae9282036be0c2eec11a50f22bf","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"ampatspell","email":"ampatspell@gmail.com"},"dist":{"shasum":"ac996ac29c19dae9282036be0c2eec11a50f22bf","tarball":"https://registry.npmjs.org/@ampatspell/ember-cli-relax-session/-/ember-cli-relax-session-0.0.1.tgz","integrity":"sha512-5eMkGoTrXjI70JbMBuo6m8NcUbf5NHRDoY2aIUy1+GPkRYFwW86gXg7N0ceHOOLGR8J3LgqKO/laGsL0+HjKCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE1rYo9qTGsiJtLRWuKCOqP5eyBwa5SbQF9c40dDEI08AiADPvuV/b7fx+mX8MNVWSEvi6dT9WJFWs3OvPTkfD9DKg=="}]},"maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}]},"0.0.2":{"name":"@ampatspell/ember-cli-relax-session","version":"0.0.2","description":"Relax session ember-cli addon","directories":{"doc":"doc","test":"tests"},"scripts":{"start":"ember server","build":"ember build","test":"ember try:testall"},"repository":{"type":"git","url":"https://bitbucket.org/ampatspell/ember-cli-relax-session"},"engines":{"node":">= 0.10.0"},"author":"","license":"MIT","devDependencies":{"broccoli-asset-rev":"^2.0.2","ember-cli":"1.13.1","ember-cli-app-version":"0.4.0","ember-cli-content-security-policy":"0.4.0","ember-cli-dependency-checker":"^1.0.0","ember-cli-htmlbars":"0.7.9","ember-cli-htmlbars-inline-precompile":"^0.1.1","ember-cli-ic-ajax":"0.2.1","ember-cli-inject-live-reload":"^1.3.0","ember-cli-qunit":"0.3.15","ember-cli-release":"0.2.3","ember-cli-uglify":"^1.0.1","ember-data":"1.13.5","ember-disable-prototype-extensions":"^1.0.0","ember-disable-proxy-controllers":"^1.0.0","ember-export-application-global":"^1.0.2","ember-local-storage":"0.0.5","ember-try":"0.0.6"},"keywords":["ember-addon","relax","session","authentication","authorization","acl"],"dependencies":{"ember-cli-babel":"^5.0.0"},"ember-addon":{"configPath":"tests/dummy/config"},"_id":"@ampatspell/ember-cli-relax-session@0.0.2","_shasum":"b2ff4af4deaf916411e57b09b2ab3eab9e3d04df","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"ampatspell","email":"ampatspell@gmail.com"},"dist":{"shasum":"b2ff4af4deaf916411e57b09b2ab3eab9e3d04df","tarball":"https://registry.npmjs.org/@ampatspell/ember-cli-relax-session/-/ember-cli-relax-session-0.0.2.tgz","integrity":"sha512-GZB5gCfo0uMXTG6R22Qan7EwdMdbkLToW/Y406EGcAL5O3RN3URY6frwM5vtLJY8Le+mQGmsaWffctSWJfB27A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCETdDeSaBXoCm3HmPNs/yVKsPzHYJv9KgdQeo51iVHKQIhAOUgJNRMulCO/8pOc1u1V/XZwcXI/rhH+NjeTLM9xeUl"}]},"maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}]},"0.0.3":{"name":"@ampatspell/ember-cli-relax-session","version":"0.0.3","description":"Relax session ember-cli addon","directories":{"doc":"doc","test":"tests"},"scripts":{"start":"ember server","build":"ember build","test":"ember try:testall"},"repository":{"type":"git","url":"https://bitbucket.org/ampatspell/ember-cli-relax-session"},"engines":{"node":">= 0.10.0"},"author":"","license":"MIT","devDependencies":{"broccoli-asset-rev":"^2.0.2","ember-cli":"1.13.1","ember-cli-app-version":"0.4.0","ember-cli-content-security-policy":"0.4.0","ember-cli-dependency-checker":"^1.0.0","ember-cli-htmlbars":"0.7.9","ember-cli-htmlbars-inline-precompile":"^0.1.1","ember-cli-ic-ajax":"0.2.1","ember-cli-inject-live-reload":"^1.3.0","ember-cli-qunit":"0.3.15","ember-cli-release":"0.2.3","ember-cli-uglify":"^1.0.1","ember-data":"1.13.5","ember-disable-prototype-extensions":"^1.0.0","ember-disable-proxy-controllers":"^1.0.0","ember-export-application-global":"^1.0.2","ember-local-storage":"0.0.5","ember-try":"0.0.6"},"keywords":["ember-addon","relax","session","authentication","authorization","acl"],"dependencies":{"ember-cli-babel":"^5.0.0"},"ember-addon":{"configPath":"tests/dummy/config"},"_id":"@ampatspell/ember-cli-relax-session@0.0.3","_shasum":"8955edcadd81afb2734a9e5d5265086f5aae0707","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"ampatspell","email":"ampatspell@gmail.com"},"dist":{"shasum":"8955edcadd81afb2734a9e5d5265086f5aae0707","tarball":"https://registry.npmjs.org/@ampatspell/ember-cli-relax-session/-/ember-cli-relax-session-0.0.3.tgz","integrity":"sha512-c+tRQ2A6OqgW9L/c4Ldyc6wqZWLCtVzKbNab6t91kCE/FJjYBe66g1mWDNertqs0qDUS+DnV610o6noJPBmGNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCirapnD5p9cE6wyCNCQXMDc6hUhFH4UK/cKG2/JPMqQAIgUvLsMLaHNVQYV2NMC/Be1XJLlHRhNsEvSKPCaU/Vdtc="}]},"maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}]}},"readme":"# ember-cli-relax-session\n\nRelax session ember-cli addon\n\n## Install\n  \n    $ ember install @ampatspell/ember-cli-relax-session\n\n## Configure Session\n\nOptionally extend Session service:\n\n    // app/services/session.js\n    import Ember from 'ember';\n    import Session from 'relax-session/services/session';\n\n    export default Session.extend({\n\n      onRestored: function() {\n      },\n\n      onSaved: function() {\n      },\n\n    });\n\nExtend Session model:\n\n    // app/models/session.js\n    import Session from \"relax-session/models/session\";\n\n    export default Session.extend({\n\n      authenticated: DS.attr('boolean'),\n      roles: DS.attr('raw'),\n      author: DS.belongsTo('author', {async: true}),\n\n      // load additional relationships after login if necessary\n      loadRelationships: function() {\n        return this.get('author.promise');\n      },\n\n    });\n\nRestore session in application route:\n\n    // app/routes/application.js\n    import Ember from 'ember';\n\n    export default Route.extend({\n\n      session: Ember.inject.service(),\n      \n      beforeModel: function() {\n        this._super(...arguments);\n        return this.get('session').restoreOnce();\n      }\n\n    });\n\n## Configure Requirements\n\nExtend Requirements service:\n\n    // app/services/requirements.js\n    import Requirements from 'relax-session/services/requirements';\n    import requirements from '../requirements';\n\n    export default Requirements.extend({\n\n      requirements: requirements,\n\n    });\n\nAdd requirements\n\n    import Ember from 'ember';\n\n    export default {\n      'anonymous': function() {\n        if(!this.get('authenticated')) {\n          return;\n        }\n        return 'logged-in';\n      },\n      'logged-in': function() {\n        if(this.get('authenticated')) {\n          return;\n        }\n        return 'login';\n      },\n      'moderator-or-author': function(model) {\n        Ember.assert(\"model is required\", Ember.typeOf(model) === 'instance');\n        if(!this.get('authenticated')) {\n          return 'login';\n        }\n        if(this.get('author.content') === model) {\n          return \"is-author\";\n        }\n        if(this.get('roles').indexOf('moderator') !== -1) {\n          return \"is-moderator\";\n        }\n        return 'denied';\n      }\n    };\n\nAdd RequirementRouteMixin:\n\n    // app/routes/base.js\n    import Ember from 'ember';\n    import RequirementRouteMixin from 'relax-session/mixins/requirement-route';\n\n    export default Ember.Route.extend(RequirementRouteMixin, {\n\n      // before model requirement\n      require: 'logged-in',\n\n      // requirement response to route name mapping\n      requireMapping: {\n        'login':       'sessions.new',\n        'denied':      'sessions.denied',\n        'logged-in':   'index',\n        'is-author':    null,\n        'is-moderator': null,\n      },\n\n    });\n\nOptionally add after model requirements:\n\n    // app/some-route.js\n    import Route from './base';\n\n    export default Route.extend({\n      model: function(params) {\n        return this.store.find('thing', params.id);\n      },\n      afterModel: function(thing) {\n        var author = thing.get('author');\n        return this.validateRequirement('moderator-or-author', author);\n      },\n    });\n","maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}],"time":{"modified":"2022-06-12T14:39:39.942Z","created":"2015-07-12T07:20:02.077Z","0.0.1":"2015-07-12T07:20:02.077Z","0.0.2":"2015-07-12T07:28:00.404Z","0.0.3":"2015-07-12T07:41:11.198Z"},"keywords":["ember-addon","relax","session","authentication","authorization","acl"],"repository":{"type":"git","url":"https://bitbucket.org/ampatspell/ember-cli-relax-session"},"license":"MIT","readmeFilename":"README.md"}