Move UserInfoParser to sdkjs
This commit is contained in:
parent
2c0696ed12
commit
1bd7203489
|
@ -981,113 +981,3 @@ Common.Utils.ModalWindow = new(function() {
|
|||
}
|
||||
}
|
||||
})();
|
||||
|
||||
Common.Utils.UserInfoParser = new(function() {
|
||||
var parse = false,
|
||||
separator = String.fromCharCode(160),
|
||||
username = '',
|
||||
_reviewPermissions,
|
||||
reviewGroups,
|
||||
commentGroups;
|
||||
|
||||
var _intersection = function (arr1, arr2) {
|
||||
if (arr1 && arr2) {
|
||||
for (var i=0; i<arr2.length; i++) {
|
||||
if (arr1.indexOf(arr2[i])>-1)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
var _getParsedGroups = function(username) {
|
||||
if (parse && username) {
|
||||
var idx = username.indexOf(separator),
|
||||
groups = (idx>-1) ? username.substring(0, idx).split(',') : [];
|
||||
for (var i=0; i<groups.length; i++)
|
||||
groups[i] = groups[i].trim();
|
||||
return groups;
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
setParser: function(value) {
|
||||
parse = !!value;
|
||||
},
|
||||
|
||||
setCurrentName: function(name) {
|
||||
username = name;
|
||||
_reviewPermissions && this.setReviewPermissions(null, _reviewPermissions); // old version of review permissions
|
||||
},
|
||||
|
||||
getCurrentName: function() {
|
||||
return username;
|
||||
},
|
||||
|
||||
getSeparator: function() {
|
||||
return separator;
|
||||
},
|
||||
|
||||
getParsedName: function(username) {
|
||||
return (parse && username) ? username.substring(username.indexOf(separator)+1) : username;
|
||||
},
|
||||
|
||||
setReviewPermissions: function(groups, permissions) {
|
||||
if (groups) {
|
||||
if (typeof groups == 'object' && groups.length>0)
|
||||
reviewGroups = groups;
|
||||
} else if (permissions) { // old version of review permissions
|
||||
var arr = [],
|
||||
arrgroups = _getParsedGroups(username);
|
||||
arrgroups && arrgroups.forEach(function(group) {
|
||||
var item = permissions[group.trim()];
|
||||
item && (arr = arr.concat(item));
|
||||
});
|
||||
reviewGroups = arr;
|
||||
_reviewPermissions = permissions;
|
||||
}
|
||||
},
|
||||
|
||||
setCommentPermissions: function(groups) {
|
||||
if (groups && typeof groups == 'object') {
|
||||
commentGroups = {
|
||||
view: (typeof groups.view == 'object' && groups.view.length>0) ? groups.view : null,
|
||||
edit: (typeof groups.edit == 'object' && groups.edit.length>0) ? groups.edit : null,
|
||||
remove: (typeof groups.remove == 'object' && groups.remove.length>0) ? groups.remove : null
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
canEditReview: function(username) {
|
||||
if (!parse || !reviewGroups) return true;
|
||||
|
||||
var groups = _getParsedGroups(username);
|
||||
groups && (groups.length==0) && (groups = [""]);
|
||||
return _intersection(reviewGroups, groups);
|
||||
},
|
||||
|
||||
canViewComment: function(username) {
|
||||
if (!parse || !commentGroups || !commentGroups.view) return true;
|
||||
|
||||
var groups = _getParsedGroups(username);
|
||||
groups && (groups.length==0) && (groups = [""]);
|
||||
return _intersection(commentGroups.view, groups);
|
||||
},
|
||||
|
||||
canEditComment: function(username) {
|
||||
if (!parse || !commentGroups || !commentGroups.edit) return true;
|
||||
|
||||
var groups = _getParsedGroups(username);
|
||||
groups && (groups.length==0) && (groups = [""]);
|
||||
return _intersection(commentGroups.edit, groups);
|
||||
},
|
||||
|
||||
canDeleteComment: function(username) {
|
||||
if (!parse || !commentGroups || !commentGroups.remove) return true;
|
||||
|
||||
var groups = _getParsedGroups(username);
|
||||
groups && (groups.length==0) && (groups = [""]);
|
||||
return _intersection(commentGroups.remove, groups);
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
|
Loading…
Reference in a new issue