admin_user.rb 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. # encoding: utf-8
  2. class AdminUser < ActiveRecord::Base
  3. has_paper_trail
  4. SUPER_ADMIN = Rails.env == "production" ? "super@fh666.com" : "super@fohow.com"
  5. # Include default devise modules. Others available are:
  6. # :confirmable, :lockable, :timeoutable, :recoverable and :omniauthable
  7. devise :database_authenticatable,
  8. :rememberable, :trackable, :validatable
  9. # Setup accessible (or protected) attributes for your model
  10. has_and_belongs_to_many :admin_roles, :join_table => :admin_roles_admin_users
  11. rails_admin do
  12. navigation_label '系统管理'
  13. weight -20
  14. configure :admin_roles do
  15. inverse_of :admin_users
  16. end
  17. list do
  18. filters [:name]
  19. field :id
  20. field :name
  21. field :admin_roles
  22. field :email
  23. # field :password
  24. # field :password_confirmation
  25. # field :company
  26. field :created_at
  27. # field :created_at do
  28. # formatted_value do
  29. # value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  30. # end
  31. # end
  32. field :updated_at
  33. field :sign_in_count
  34. # field :current_sign_in_at
  35. # field :last_sign_in_at
  36. # field :current_sign_in_ip
  37. # field :last_sign_in_ip
  38. end
  39. edit do
  40. field :email, :string
  41. field :name, :string
  42. field :password, :password
  43. field :password_confirmation, :password
  44. field :admin_roles do
  45. # 当管理员为超管或有manage_Role权限才能操作 角色列表
  46. visible do
  47. perms = bindings[:view].current_admin_user.permissions.collect{ |perm| "#{perm.can}_#{perm.model}"}
  48. perms.include?("manage_AdminRole") or bindings[:view].current_admin_user.email == SUPER_ADMIN
  49. end
  50. end
  51. end
  52. show do
  53. configure :remember_created_at do
  54. formatted_value do
  55. value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  56. end
  57. end
  58. configure :current_sign_in_at do
  59. formatted_value do
  60. value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  61. end
  62. end
  63. configure :last_sign_in_at do
  64. formatted_value do
  65. value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  66. end
  67. end
  68. end
  69. end
  70. #def name
  71. # email
  72. #end
  73. def permissions
  74. _permissions = []
  75. self.admin_roles.each do |role|
  76. role.admin_permissions.each do |permission|
  77. _permissions << permission
  78. end
  79. end
  80. _permissions
  81. end
  82. end