summaryrefslogtreecommitdiff
path: root/app/models/user.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb63
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)
#
-