admin_permission.rb 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # encoding:utf-8
  2. class AdminPermission < ActiveRecord::Base
  3. has_paper_trail
  4. CAN_OPTIONS = %w(manage create update read write import export history)
  5. # attr_accessible :model, :can
  6. validates_inclusion_of :can, in: CAN_OPTIONS
  7. validates :model, :can, presence: true
  8. has_and_belongs_to_many :admin_roles, join_table: :admin_permissions_admin_roles
  9. rails_admin do
  10. navigation_label '系统管理'
  11. weight -20
  12. configure :admin_roles do
  13. inverse_of :admin_permissions
  14. end
  15. list do
  16. filters [:model,:can]
  17. end
  18. edit do
  19. field :model, :enum do
  20. enum do
  21. RailsAdmin::Config.models.collect do |model|
  22. model_name = model.abstract_model.model_name
  23. [eval("#{model_name}.model_name.human"), model_name]
  24. end
  25. end
  26. end
  27. field :can, :enum do
  28. enum do
  29. CAN_OPTIONS.collect do |can|
  30. [I18n.t(can), can]
  31. end
  32. end
  33. end
  34. end
  35. end
  36. def name
  37. model_name = model.present? ? eval("#{model}.model_name.human") : ''
  38. "#{I18n.t(self.can)}_#{model_name}"
  39. end
  40. end