Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function UsuarioModel() {
- var self = this;
- self.id = ko.observable(null);
- self.apelido = ko.observable(null);
- self.usuarioGrupo = ko.observable(null);
- self.hasPerfil = function(perfil) {
- if (!self.usuarioGrupo() || !self.usuarioGrupo().perfis || !self.usuarioGrupo().perfis()) {
- return false;
- }
- return !!ko.utils.arrayFirst(self.usuarioGrupo().perfis(), function(currentPerfil) {
- return currentPerfil === perfil;
- });
- };
- self.hasRule = function(rule) {
- if (!rule) {
- return true;
- }
- var compiledRule = rule.replace(/\{(.*?)\}/g, 'self.hasPerfil("$1")').replace(/\ AND\ /gi, ' && ').replace(/\ OR\ /gi, ' || ');
- return eval(compiledRule);
- };
- self.hasAtLeastOneRule = function(rules) {
- if (rules) {
- return !!ko.utils.arrayFirst(rules, function(currentRule) {
- return self.hasRule(currentRule);
- });
- }
- return false;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement