attr_accessor :force_random_password
- has_many :users_projects, :dependent => :destroy
- has_many :projects, :through => :users_projects
- has_many :my_own_projects, :class_name => "Project", :foreign_key => :owner_id
- has_many :keys, :dependent => :destroy
+ has_many :users_projects, dependent: :destroy
+ has_many :projects, through: :users_projects
+ 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
+ class_name: "Event",
+ foreign_key: :author_id,
+ dependent: :destroy
has_many :recent_events,
- :class_name => "Event",
- :foreign_key => :author_id,
- :order => "id DESC"
+ class_name: "Event",
+ foreign_key: :author_id,
+ order: "id DESC"
has_many :issues,
- :foreign_key => :author_id,
- :dependent => :destroy
+ foreign_key: :author_id,
+ dependent: :destroy
has_many :notes,
- :foreign_key => :author_id,
- :dependent => :destroy
+ foreign_key: :author_id,
+ dependent: :destroy
has_many :assigned_issues,
- :class_name => "Issue",
- :foreign_key => :assignee_id,
- :dependent => :destroy
+ class_name: "Issue",
+ foreign_key: :assignee_id,
+ dependent: :destroy
has_many :merge_requests,
- :foreign_key => :author_id,
- :dependent => :destroy
+ foreign_key: :author_id,
+ dependent: :destroy
has_many :assigned_merge_requests,
- :class_name => "MergeRequest",
- :foreign_key => :assignee_id,
- :dependent => :destroy
+ class_name: "MergeRequest",
+ foreign_key: :assignee_id,
+ dependent: :destroy
validates :projects_limit,
- :presence => true,
- :numericality => {:greater_than_or_equal_to => 0}
+ presence: true,
+ numericality: {greater_than_or_equal_to: 0}
- validates :bio, :length => { :within => 0..255 }
+ 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