You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

42 lines
1.1 KiB

  1. // misc user functions
  2. wn.user_info = function(uid) {
  3. var def = {
  4. 'fullname':uid,
  5. 'image': 'lib/images/ui/no_img_m.gif'
  6. }
  7. if(!wn.boot.user_info) return def
  8. if(!wn.boot.user_info[uid]) return def
  9. if(!wn.boot.user_info[uid].fullname)
  10. wn.boot.user_info[uid].fullname = uid;
  11. if(!wn.boot.user_info[uid].image)
  12. wn.boot.user_info[uid].image = def.image;
  13. return wn.boot.user_info[uid];
  14. }
  15. wn.provide('wn.user');
  16. $.extend(wn.user, {
  17. name: (wn.boot ? wn.boot.profile.name : 'Guest'),
  18. has_role: function(rl) {
  19. if(typeof rl=='string')
  20. rl = [rl];
  21. for(var i in rl) {
  22. if((wn.boot ? wn.boot.profile.roles : ['Guest']).indexOf(rl[i])!=-1)
  23. return true;
  24. }
  25. },
  26. is_report_manager: function() {
  27. return wn.user.has_role(['Administrator', 'System Manager', 'Report Manager']);
  28. }
  29. })
  30. // wn.session_alive is true if user shows mouse movement in 30 seconds
  31. wn.session_alive = true;
  32. $(document).bind('mousemove', function() {
  33. wn.session_alive = true;
  34. if(wn.session_alive_timeout)
  35. clearTimeout(wn.session_alive_timeout);
  36. wn.session_alive_timeout = setTimeout('wn.session_alive=false;', 30000);
  37. })