Files
dbois/public/js/lib/modules/beheer/authorisationVue.js
T
2018-07-30 14:50:52 +02:00

106 lines
2.7 KiB
JavaScript

/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 15/07/2018
* Time: 10:50
*/
dbo.autorisationService = {
roles : [],
pages : [],
initPages: true,
createRoles: function ( callback ) {
var srv = dbo.autorisationService;
dbo.authorisationDataService.getRoleAuthorisations( function ( data ) {
_.each( data, function ( p ) {
srv.roles.push( new srv.Role( p ) );
} );
_.each( data, function ( p ) {
_.each( p.pagesAccess, function ( q ) {
if ( srv.initPages ) {
srv.pages.push( new srv.Page( q ) );
} else {
_.each( srv.pages, function ( s ) {
if ( s.pageID == q.id ) {
s.accessPages.push( new srv.Access( q ) )
}
} );
}
} );
srv.initPages = false;
} );
} );
callback( srv );
},
Role: function ( data ) {
this.roleID = data.id;
this.rolename = data.rolename;
},
Page: function ( data ) {
var srv = dbo.autorisationService;
if ( srv.initPages ) {
this.pageID = data.id;
this.pagename = data.pagename;
this.typePage = data.typepage;
this.accessPages = [];
this.accessPages.push( new srv.Access( data ) );
}
},
Access: function ( data ) {
this.access = data.pageaccess == 'T' ? true : false;
this.roleLevel = data.rolelevel;
}
};
dbo.authorisationInit = function() {
new Vue( {
el : "#AUTHORISATION",
data : {
roles: [],
pages: []
},
created: function () {
var self = this;
var srv = dbo.autorisationService;
srv.createRoles( function ( data ) {
console.log( data.pages );
self.roles = data.roles;
self.pages = data.pages;
} );
},
methods: {
toggleAccess: function ( pageIndex, roleIndex ) {
var page = this.pages[pageIndex];
var access = page.accessPages[roleIndex];
page.accessPages[roleIndex].access = !page.accessPages[roleIndex].access;
var submitDATA = {
pageID : page.pageID,
roleLevel: access.roleLevel,
access : page.accessPages[roleIndex].access ? 'T' : 'F'
}
dbo.authorisationDataService.toggleAuhorisation( submitDATA );
}
}
} );
};