我正在使用FullCalendar jQuery 插件以及 ColdFusion 和 MySQL。我有两个用户级别,“管理员”和“只读”。我希望“只读”用户只能查看日历上的事件而不进行任何更改,而“管理员”角色具有完整的编辑功能。editable
我希望通过向 FullCalendar选项添加一个函数来做到这一点,true
如果用户的角色是管理员并且false
用户角色是只读的,则该选项将设置为。
该变量userRole
基于 ColdFusion 会话变量在页眉中设置。我验证了userRole
在 javascript 中调用时确实包含正确的字符串。
我尝试了什么:
$("#calendar").fullCalendar({
// other options and callbacks
// ....
editable: function(){
if (userRole == 'Read-Only') {
return false //events can not be modified
}
else if (userRole == 'Admin') {
return true //events can be modified
}
},
// other callbacks
// ...
});
editable
当我使用 Firebug 单步执行代码时,会跳过该选项的整个功能,并且两种用户类型的事件都是可编辑的。
我的 jQuery 函数是否存在缺陷(我是 jQuery 编程新手)?FullCalendareditable
选项是否不允许使用函数?
我可以通过对每个 FullCalendar 回调(例如 eventDrop、eventResize、select 和 eventClick)进行用户角色检查来解决这个问题
select: function(start, end, allDay) {
// check if user is Admin, if not, unselect and return
if (userRole != 'Admin') {
alert("You do not have the permissions to edit events.");
$("#calendar").fullCalendar( 'unselect' );
return
}
// proceed if user is Admin
// ...
}
并且仅在用户角色为“管理员”时才继续,但我希望能够更全局地设置角色。
想法?