blob: aa9967067c9a8cc2c6ec909845362c1500c34f99 [file] [log] [blame]
// 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) {
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 () {
app.masterLayout.setView('#dashboard', new noAccessView());
app.masterLayout.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);
});