add example auth module
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/51275235 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/51275235 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/51275235 Branch: refs/heads/route-events Commit: 512752353d5ee6753ec9ed8f73daa1846fcc4c98 Parents: ad55290 Author: Garren Smith <[email protected]> Authored: Wed May 8 21:25:25 2013 +0200 Committer: Garren Smith <[email protected]> Committed: Thu May 9 10:02:19 2013 +0200 ---------------------------------------------------------------------- .gitignore | 1 + src/fauxton/app/addons/exampleAuth/base.js | 59 +++++++++++++++ .../app/addons/exampleAuth/templates/noAccess.html | 19 +++++ 3 files changed, 79 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/51275235/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index 67da1c8..c1ece09 100644 --- a/.gitignore +++ b/.gitignore @@ -92,6 +92,7 @@ src/fauxton/app/addons/* !src/fauxton/app/addons/stats !src/fauxton/app/addons/contribute !src/fauxton/app/addons/auth +!src/fauxton/app/addons/exampleAuth src/fauxton/settings.json* !src/fauxton/settings.json.default share/www/fauxton http://git-wip-us.apache.org/repos/asf/couchdb/blob/51275235/src/fauxton/app/addons/exampleAuth/base.js ---------------------------------------------------------------------- diff --git a/src/fauxton/app/addons/exampleAuth/base.js b/src/fauxton/app/addons/exampleAuth/base.js new file mode 100644 index 0000000..b58558c --- /dev/null +++ b/src/fauxton/app/addons/exampleAuth/base.js @@ -0,0 +1,59 @@ +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy of +// the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. + +define([ + "app", + + "api" +], + +function(app, FauxtonAPI) { + // This is an example module of using the new auth module. + + var noAccessView = FauxtonAPI.View.extend({ + template: "addons/exampleAuth/templates/noAccess" + + }); + + // To utilise the authentication - all that is required, is one callback + // that is registered with the auth api. This function can return an array + // of deferred objects. + // The roles argument that is passed in is the required roles for the current user + // to be allowed to access the current page. + // The layout is the main layout for use when you want to render a view onto the page + var auth = function (roles, layout) { + var deferred = $.Deferred(); + + if (roles.indexOf('admin') > -1) { + deferred.reject(); + } else { + deferred.resolve(); + } + + return [deferred]; + }; + + // If you would like to do something with when access is denied you can register this callback. + // It will be called is access has been denied on the previous page. + var authFail = function (layout) { + layout.setView('#dashboard', new noAccessView()); + layout.renderView('#dashboard'); + }; + + // Register the auth call back. This will be called before new route rendered + FauxtonAPI.auth.registerAuth(auth); + // Register a failed route request callback. This is called if access is denied. + FauxtonAPI.auth.registerAuthDenied(authFail); + + + +}); http://git-wip-us.apache.org/repos/asf/couchdb/blob/51275235/src/fauxton/app/addons/exampleAuth/templates/noAccess.html ---------------------------------------------------------------------- diff --git a/src/fauxton/app/addons/exampleAuth/templates/noAccess.html b/src/fauxton/app/addons/exampleAuth/templates/noAccess.html new file mode 100644 index 0000000..f1a9506 --- /dev/null +++ b/src/fauxton/app/addons/exampleAuth/templates/noAccess.html @@ -0,0 +1,19 @@ +<!-- +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations under +the License. +--> + +<div class="row-fluid" > + <div class="span6 offset4"> + <h3> You do not have permission to view this page </h3> +</div> +</div>
