106 lines
2.7 KiB
JavaScript
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 );
|
|
}
|
|
}
|
|
|
|
} );
|
|
};
|
|
|
|
|