f_power_ind.srf 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. $PBExportHeader$f_power_ind.srf
  2. global type f_power_ind from function_object
  3. end type
  4. forward prototypes
  5. global function boolean f_power_ind (long argno, ref string arg_msg)
  6. end prototypes
  7. global function boolean f_power_ind (long argno, ref string arg_msg);//f_power_ind
  8. Int i
  9. Boolean lb_ifpower
  10. Int li_grade
  11. String ls_grade_user,ls_grade_pow
  12. String ls_treename
  13. lb_ifpower = FALSE
  14. i = Integer(Mid(sys_right,argno,1))
  15. IF i = 1 OR sys_power_issuper THEN
  16. lb_ifpower = TRUE
  17. END IF
  18. SELECT grade,treename INTO :li_grade,:ls_treename
  19. FROM sys_func_pwr
  20. Where funcid = :argno;
  21. IF sqlca.SQLCode <> 0 THEN
  22. arg_msg = '查询权限信息失败,'+sqlca.SQLErrText
  23. RETURN FALSE
  24. END IF
  25. IF lb_ifpower THEN
  26. IF sys_ifreg = 1 and sys_ifnewserver = 1 THEN
  27. IF sys_user_grade < li_grade THEN
  28. IF sys_user_grade = 0 THEN
  29. ls_grade_user = '公共[0]'
  30. ELSEIF sys_user_grade = 1 THEN
  31. ls_grade_user = '执行[1]'
  32. ELSEIF sys_user_grade = 2 THEN
  33. ls_grade_user = '计划[2]'
  34. ELSEIF sys_user_grade = 3 THEN
  35. ls_grade_user = '策略[3]'
  36. END IF
  37. IF li_grade = 0 THEN
  38. ls_grade_pow = '公共[0]'
  39. ELSEIF li_grade = 1 THEN
  40. ls_grade_pow = '执行[1]'
  41. ELSEIF li_grade = 2 THEN
  42. ls_grade_pow = '计划[2]'
  43. ELSEIF li_grade = 3 THEN
  44. ls_grade_pow = '策略[3]'
  45. END IF
  46. arg_msg = '你当前用户的等级为:'+ls_grade_user+',不能执行权限等级为:'+ls_grade_pow+'的操作'
  47. RETURN FALSE
  48. END IF
  49. END IF
  50. ELSE
  51. arg_msg = '你没有'+ls_treename+'的使用权限!'
  52. RETURN FALSE
  53. END IF
  54. RETURN TRUE
  55. end function