diff options
Diffstat (limited to 'app/models/user.rb')
-rw-r--r-- | app/models/user.rb | 63 |
1 files changed, 16 insertions, 47 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index f33f01fd72b..bed568effdc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,64 +1,31 @@ class User < ActiveRecord::Base - include Account devise :database_authenticatable, :token_authenticatable, :lockable, :recoverable, :rememberable, :trackable, :validatable, :omniauthable - attr_accessible :email, :password, :password_confirmation, :remember_me, :bio, - :name, :skype, :linkedin, :twitter, :dark_scheme, - :theme_id, :force_random_password, :extern_uid, :provider, :as => [:default, :admin] + attr_accessible :email, :password, :password_confirmation, :remember_me, :bio, :name, + :skype, :linkedin, :twitter, :dark_scheme, :theme_id, :force_random_password, + :extern_uid, :provider, :as => [:default, :admin] attr_accessible :projects_limit, :as => :admin attr_accessor :force_random_password - has_many :users_projects, dependent: :destroy + has_many :keys, dependent: :destroy has_many :projects, through: :users_projects + has_many :users_projects, dependent: :destroy + has_many :issues, foreign_key: :author_id, dependent: :destroy + has_many :notes, foreign_key: :author_id, dependent: :destroy + has_many :merge_requests, foreign_key: :author_id, dependent: :destroy has_many :my_own_projects, class_name: "Project", foreign_key: :owner_id - has_many :keys, dependent: :destroy - - has_many :events, - class_name: "Event", - foreign_key: :author_id, - dependent: :destroy - - has_many :recent_events, - class_name: "Event", - foreign_key: :author_id, - order: "id DESC" - - has_many :issues, - foreign_key: :author_id, - dependent: :destroy - - has_many :notes, - foreign_key: :author_id, - dependent: :destroy - - has_many :assigned_issues, - class_name: "Issue", - foreign_key: :assignee_id, - dependent: :destroy - - has_many :merge_requests, - foreign_key: :author_id, - dependent: :destroy - - has_many :assigned_merge_requests, - class_name: "MergeRequest", - foreign_key: :assignee_id, - dependent: :destroy - - validates :projects_limit, - presence: true, - numericality: {greater_than_or_equal_to: 0} + has_many :events, class_name: "Event", foreign_key: :author_id, dependent: :destroy + has_many :recent_events, class_name: "Event", foreign_key: :author_id, order: "id DESC" + has_many :assigned_issues, class_name: "Issue", foreign_key: :assignee_id, dependent: :destroy + has_many :assigned_merge_requests, class_name: "MergeRequest", foreign_key: :assignee_id, dependent: :destroy validates :bio, length: { within: 0..255 } - validates :extern_uid, :allow_blank => true, :uniqueness => {:scope => :provider} - - before_save :ensure_authentication_token - alias_attribute :private_token, :authentication_token + validates :projects_limit, presence: true, numericality: {greater_than_or_equal_to: 0} scope :not_in_project, lambda { |project| where("id not in (:ids)", ids: project.users.map(&:id) ) } scope :admins, where(admin: true) @@ -66,6 +33,8 @@ class User < ActiveRecord::Base scope :active, where(blocked: false) before_validation :generate_password, on: :create + before_save :ensure_authentication_token + alias_attribute :private_token, :authentication_token def generate_password if self.force_random_password @@ -107,6 +76,7 @@ class User < ActiveRecord::Base where("name like :query or email like :query", query: "%#{query}%") end end + # == Schema Information # # Table name: users @@ -140,4 +110,3 @@ end # extern_uid :string(255) # provider :string(255) # - |