admin_user.rb 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. attr_accessible :email, :id , :admin_permission
  12. rails_admin do
  13. navigation_label '系统管理'
  14. weight -20
  15. configure :admin_roles do
  16. inverse_of :admin_users
  17. end
  18. list do
  19. filters [:name]
  20. field :id
  21. field :name
  22. field :admin_roles
  23. field :email
  24. # field :password
  25. # field :password_confirmation
  26. # field :company
  27. field :created_at
  28. # field :created_at do
  29. # formatted_value do
  30. # value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  31. # end
  32. # end
  33. field :updated_at
  34. field :sign_in_count
  35. # field :current_sign_in_at
  36. # field :last_sign_in_at
  37. # field :current_sign_in_ip
  38. # field :last_sign_in_ip
  39. end
  40. edit do
  41. field :email, :string
  42. field :name, :string
  43. field :password, :password
  44. field :password_confirmation, :password
  45. field :admin_roles do
  46. # 当管理员为超管或有manage_Role权限才能操作 角色列表
  47. visible do
  48. perms = bindings[:view].current_admin_user.permissions.collect{ |perm| "#{perm.can}_#{perm.model}"}
  49. perms.include?("manage_AdminRole") or bindings[:view].current_admin_user.email == SUPER_ADMIN
  50. end
  51. end
  52. end
  53. show do
  54. configure :remember_created_at do
  55. formatted_value do
  56. value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  57. end
  58. end
  59. configure :current_sign_in_at do
  60. formatted_value do
  61. value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  62. end
  63. end
  64. configure :last_sign_in_at do
  65. formatted_value do
  66. value.strftime("%Y-%m-%d %H:%m:%S") unless value == 0
  67. end
  68. end
  69. end
  70. end
  71. #def name
  72. # email
  73. #end
  74. def permissions
  75. _permissions = []
  76. self.admin_roles.each do |role|
  77. role.admin_permissions.each do |permission|
  78. _permissions << permission
  79. end
  80. end
  81. _permissions
  82. end
  83. end