Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/helpers/commits_helper.rb2
-rw-r--r--app/helpers/merge_requests_helper.rb2
-rw-r--r--app/models/ability.rb101
-rw-r--r--app/models/event.rb19
-rw-r--r--app/models/group.rb28
-rw-r--r--app/models/key.rb11
-rw-r--r--app/models/merge_request.rb7
-rw-r--r--app/models/milestone.rb3
-rw-r--r--app/models/note.rb16
-rw-r--r--app/models/project.rb92
-rw-r--r--app/models/protected_branch.rb3
-rw-r--r--app/models/snippet.rb4
-rw-r--r--app/models/system_hook.rb8
-rw-r--r--app/models/user.rb69
-rw-r--r--app/models/users_project.rb84
-rw-r--r--app/models/web_hook.rb2
-rw-r--r--app/models/wiki.rb26
-rw-r--r--app/roles/account.rb2
-rw-r--r--app/roles/authority.rb8
-rw-r--r--app/roles/issue_commonality.rb9
-rw-r--r--app/roles/push_event.rb8
21 files changed, 258 insertions, 246 deletions
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 16ecfb1f89b..4b35b0ac910 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -17,7 +17,7 @@ module CommitsHelper
line_old = 1
line_new = 1
type = nil
-
+
lines_arr = ::Gitlab::InlineDiff.processing diff_arr
lines_arr.each do |line|
next if line.match(/^\-\-\- \/dev\/null/)
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index 62ac5e55d43..16855989bdd 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -24,7 +24,7 @@ module MergeRequestsHelper
def new_mr_path_from_push_event(event)
new_project_merge_request_path(
event.project,
- merge_request: {
+ merge_request: {
source_branch: event.branch_name,
target_branch: event.project.root_ref,
title: event.branch_name.titleize
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 20ded59b511..d3180b76e7c 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -1,61 +1,61 @@
class Ability
- def self.allowed(object, subject)
- case subject.class.name
- when "Project" then project_abilities(object, subject)
- when "Issue" then issue_abilities(object, subject)
- when "Note" then note_abilities(object, subject)
- when "Snippet" then snippet_abilities(object, subject)
- when "MergeRequest" then merge_request_abilities(object, subject)
- else []
+ class << self
+ def allowed(object, subject)
+ case subject.class.name
+ when "Project" then project_abilities(object, subject)
+ when "Issue" then issue_abilities(object, subject)
+ when "Note" then note_abilities(object, subject)
+ when "Snippet" then snippet_abilities(object, subject)
+ when "MergeRequest" then merge_request_abilities(object, subject)
+ else []
+ end
end
- end
- def self.project_abilities(user, project)
- rules = []
+ def project_abilities(user, project)
+ rules = []
- rules << [
- :read_project,
- :read_wiki,
- :read_issue,
- :read_milestone,
- :read_snippet,
- :read_team_member,
- :read_merge_request,
- :read_note,
- :write_project,
- :write_issue,
- :write_note
- ] if project.guest_access_for?(user)
+ rules << [
+ :read_project,
+ :read_wiki,
+ :read_issue,
+ :read_milestone,
+ :read_snippet,
+ :read_team_member,
+ :read_merge_request,
+ :read_note,
+ :write_project,
+ :write_issue,
+ :write_note
+ ] if project.guest_access_for?(user)
- rules << [
- :download_code,
- :write_merge_request,
- :write_snippet
- ] if project.report_access_for?(user)
+ rules << [
+ :download_code,
+ :write_merge_request,
+ :write_snippet
+ ] if project.report_access_for?(user)
- rules << [
- :write_wiki
- ] if project.dev_access_for?(user)
+ rules << [
+ :write_wiki
+ ] if project.dev_access_for?(user)
- rules << [
- :modify_issue,
- :modify_snippet,
- :modify_merge_request,
- :admin_project,
- :admin_issue,
- :admin_milestone,
- :admin_snippet,
- :admin_team_member,
- :admin_merge_request,
- :admin_note,
- :accept_mr,
- :admin_wiki
- ] if project.master_access_for?(user) || project.owner == user
+ rules << [
+ :modify_issue,
+ :modify_snippet,
+ :modify_merge_request,
+ :admin_project,
+ :admin_issue,
+ :admin_milestone,
+ :admin_snippet,
+ :admin_team_member,
+ :admin_merge_request,
+ :admin_note,
+ :accept_mr,
+ :admin_wiki
+ ] if project.master_access_for?(user) || project.owner == user
- rules.flatten
- end
+ rules.flatten
+ end
- class << self
[:issue, :note, :snippet, :merge_request].each do |name|
define_method "#{name}_abilities" do |user, subject|
if subject.author == user
@@ -72,8 +72,7 @@ class Ability
:"modify_#{name}",
]
else
- subject.respond_to?(:project) ?
- project_abilities(user, subject.project) : []
+ subject.respond_to?(:project) ? project_abilities(user, subject.project) : []
end
end
end
diff --git a/app/models/event.rb b/app/models/event.rb
index 40f584dd65f..9f01964d652 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -27,19 +27,22 @@ class Event < ActiveRecord::Base
# For Hash only
serialize :data
+ # Scopes
scope :recent, order("created_at DESC")
scope :code_push, where(action: Pushed)
- def self.determine_action(record)
- if [Issue, MergeRequest].include? record.class
- Event::Created
- elsif record.kind_of? Note
- Event::Commented
+ class << self
+ def determine_action(record)
+ if [Issue, MergeRequest].include? record.class
+ Event::Created
+ elsif record.kind_of? Note
+ Event::Commented
+ end
end
- end
- def self.recent_for_user user
- where(project_id: user.projects.map(&:id)).recent
+ def recent_for_user user
+ where(project_id: user.projects.map(&:id)).recent
+ end
end
# Next events currently enabled for system
diff --git a/app/models/group.rb b/app/models/group.rb
index 780d5fddca0..012b12856ec 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -1,15 +1,3 @@
-# == Schema Information
-#
-# Table name: groups
-#
-# id :integer not null, primary key
-# name :string(255) not null
-# code :string(255) not null
-# owner_id :integer not null
-# created_at :datetime not null
-# updated_at :datetime not null
-#
-
class Group < ActiveRecord::Base
attr_accessible :code, :name, :owner_id
@@ -18,7 +6,7 @@ class Group < ActiveRecord::Base
validates :name, presence: true, uniqueness: true
validates :code, presence: true, uniqueness: true
- validates :owner_id, presence: true
+ validates :owner, presence: true
delegate :name, to: :owner, allow_nil: true, prefix: true
@@ -31,6 +19,18 @@ class Group < ActiveRecord::Base
end
def users
- User.joins(:users_projects).where('users_projects.project_id' => project_ids).uniq
+ User.joins(:users_projects).where(users_projects: {project_id: project_ids}).uniq
end
end
+
+# == Schema Information
+#
+# Table name: groups
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# code :string(255) not null
+# owner_id :integer not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
diff --git a/app/models/key.rb b/app/models/key.rb
index dc1f3cdb9f9..43db095067d 100644
--- a/app/models/key.rb
+++ b/app/models/key.rb
@@ -6,15 +6,14 @@ class Key < ActiveRecord::Base
attr_accessible :key, :title
+ before_validation :strip_white_space
+ before_save :set_identifier
+
validates :title, presence: true, length: { within: 0..255 }
- validates :key, presence: true,
- length: { within: 0..5000 },
- format: { :with => /ssh-.{3} / }
+ validates :key, presence: true, length: { within: 0..5000 }, format: { :with => /ssh-.{3} / }
+ validate :unique_key, :fingerprintable_key
- before_save :set_identifier
- before_validation :strip_white_space
delegate :name, :email, to: :user, prefix: true
- validate :unique_key, :fingerprintable_key
def strip_white_space
self.key = self.key.strip unless self.key.blank?
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 8428c7c4cc6..dc44d820560 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -7,6 +7,8 @@ class MergeRequest < ActiveRecord::Base
attr_accessible :title, :assignee_id, :closed, :target_branch, :source_branch,
:author_id_of_changes
+ attr_accessor :should_remove_source_branch
+
BROKEN_DIFF = "--broken-diff"
UNCHECKED = 1
@@ -16,9 +18,8 @@ class MergeRequest < ActiveRecord::Base
serialize :st_commits
serialize :st_diffs
- attr_accessor :should_remove_source_branch
-
- validates_presence_of :source_branch, :target_branch
+ validates :source_branch, presence: true
+ validates :target_branch, presence: true
validate :validate_branches
def self.find_all_by_branch(branch_name)
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index a8619954017..096376e31b1 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -4,7 +4,8 @@ class Milestone < ActiveRecord::Base
belongs_to :project
has_many :issues
- validates_presence_of :title, :project_id
+ validates :title, presence: true
+ validates :project, presence: true
def self.active
where("due_date > ? OR due_date IS NULL", Date.today)
diff --git a/app/models/note.rb b/app/models/note.rb
index 23ced536b67..55b011f8b29 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -2,10 +2,13 @@ require 'carrierwave/orm/activerecord'
require 'file_size_validator'
class Note < ActiveRecord::Base
- mount_uploader :attachment, AttachmentUploader
+
attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id,
:attachment, :line_code
+ attr_accessor :notify
+ attr_accessor :notify_author
+
belongs_to :project
belongs_to :noteable, polymorphic: true
belongs_to :author, class_name: "User"
@@ -13,18 +16,17 @@ class Note < ActiveRecord::Base
delegate :name, to: :project, prefix: true
delegate :name, :email, to: :author, prefix: true
- attr_accessor :notify
- attr_accessor :notify_author
-
- validates_presence_of :project
-
+ validates :project, presence: true
validates :note, presence: true, length: { within: 0..5000 }
validates :attachment, file_size: { maximum: 10.megabytes.to_i }
+ mount_uploader :attachment, AttachmentUploader
+
+ # Scopes
scope :common, where(noteable_id: nil)
scope :today, where("created_at >= :date", date: Date.today)
scope :last_week, where("created_at >= :date", date: (Date.today - 7.days))
- scope :since, lambda { |day| where("created_at >= :date", date: (day)) }
+ scope :since, ->(day) { where("created_at >= :date", date: (day)) }
scope :fresh, order("created_at ASC, id ASC")
scope :inc_author_project, includes(:project, :author)
scope :inc_author, includes(:author)
diff --git a/app/models/project.rb b/app/models/project.rb
index 982b746365d..f4d868874b9 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -28,42 +28,62 @@ class Project < ActiveRecord::Base
delegate :name, to: :owner, allow_nil: true, prefix: true
+ # Validations
+ validates :owner, presence: true
+ validates :description, length: { within: 0..2000 }
+ validates :name, uniqueness: true, presence: true, length: { within: 0..255 }
+ validates :path, uniqueness: true, presence: true, length: { within: 0..255 },
+ format: { with: /\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/,
+ message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
+ validates :code, presence: true, uniqueness: true, length: { within: 1..255 },
+ format: { with: /\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/,
+ message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
+ validates :issues_enabled, :wall_enabled, :merge_requests_enabled,
+ :wiki_enabled, inclusion: { in: [true, false] }
+ validate :check_limit, :repo_name
+
# Scopes
scope :public_only, where(private_flag: false)
scope :without_user, ->(user) { where("id NOT IN (:ids)", ids: user.projects.map(&:id) ) }
scope :not_in_group, ->(group) { where("id NOT IN (:ids)", ids: group.project_ids ) }
- def self.active
- joins(:issues, :notes, :merge_requests).order("issues.created_at, notes.created_at, merge_requests.created_at DESC")
- end
-
- def self.search query
- where("name LIKE :query OR code LIKE :query OR path LIKE :query", query: "%#{query}%")
- end
-
- def self.create_by_user(params, user)
- project = Project.new params
-
- Project.transaction do
- project.owner = user
- project.save!
+ class << self
+ def active
+ joins(:issues, :notes, :merge_requests).order("issues.created_at, notes.created_at, merge_requests.created_at DESC")
+ end
- # Add user as project master
- project.users_projects.create!(project_access: UsersProject::MASTER, user: user)
+ def search query
+ where("name LIKE :query OR code LIKE :query OR path LIKE :query", query: "%#{query}%")
+ end
- # when project saved no team member exist so
- # project repository should be updated after first user add
- project.update_repository
+ def create_by_user(params, user)
+ project = Project.new params
+
+ Project.transaction do
+ project.owner = user
+ project.save!
+
+ # Add user as project master
+ project.users_projects.create!(project_access: UsersProject::MASTER, user: user)
+
+ # when project saved no team member exist so
+ # project repository should be updated after first user add
+ project.update_repository
+ end
+
+ project
+ rescue Gitlab::Gitolite::AccessDenied => ex
+ project.error_code = :gitolite
+ project
+ rescue => ex
+ project.error_code = :db
+ project.errors.add(:base, "Can't save project. Please try again later")
+ project
end
- project
- rescue Gitlab::Gitolite::AccessDenied => ex
- project.error_code = :gitolite
- project
- rescue => ex
- project.error_code = :db
- project.errors.add(:base, "Can't save project. Please try again later")
- project
+ def access_options
+ UsersProject.access_roles
+ end
end
def git_error?
@@ -74,20 +94,6 @@ class Project < ActiveRecord::Base
id && valid?
end
- # Validations
- validates :owner, presence: true
- validates :description, length: { within: 0..2000 }
- validates :name, uniqueness: true, presence: true, length: { within: 0..255 }
- validates :path, uniqueness: true, presence: true, length: { within: 0..255 },
- format: { with: /\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/,
- message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
- validates :code, presence: true, uniqueness: true, length: { within: 1..255 },
- format: { with: /\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/,
- message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
- validates :issues_enabled, :wall_enabled, :merge_requests_enabled,
- :wiki_enabled, inclusion: { in: [true, false] }
- validate :check_limit, :repo_name
-
def check_limit
unless owner.can_create_project?
errors[:base] << ("Your own projects limit is #{owner.projects_limit}! Please contact administrator to increase it")
@@ -102,10 +108,6 @@ class Project < ActiveRecord::Base
end
end
- def self.access_options
- UsersProject.access_roles
- end
-
def to_param
code
end
diff --git a/app/models/protected_branch.rb b/app/models/protected_branch.rb
index c9e88d6bff6..cd93dc1bfe6 100644
--- a/app/models/protected_branch.rb
+++ b/app/models/protected_branch.rb
@@ -4,7 +4,8 @@ class ProtectedBranch < ActiveRecord::Base
attr_accessible :name
belongs_to :project
- validates_presence_of :name, :project_id
+ validates :name, presence: true
+ validates :project, presence: true
after_save :update_repository
after_destroy :update_repository
diff --git a/app/models/snippet.rb b/app/models/snippet.rb
index b37d6bef139..e8670cdbcf2 100644
--- a/app/models/snippet.rb
+++ b/app/models/snippet.rb
@@ -9,11 +9,13 @@ class Snippet < ActiveRecord::Base
delegate :name, :email, to: :author, prefix: true
- validates_presence_of :author_id, :project_id
+ validates :author, presence: true
+ validates :project, presence: true
validates :title, presence: true, length: { within: 0..255 }
validates :file_name, presence: true, length: { within: 0..255 }
validates :content, presence: true, length: { within: 0..10000 }
+ # Scopes
scope :fresh, order("created_at DESC")
scope :non_expired, where(["expires_at IS NULL OR expires_at > ?", Time.current])
scope :expired, where(["expires_at IS NOT NULL AND expires_at < ?", Time.current])
diff --git a/app/models/system_hook.rb b/app/models/system_hook.rb
index 376f336d37a..8ec8374bae0 100644
--- a/app/models/system_hook.rb
+++ b/app/models/system_hook.rb
@@ -1,13 +1,13 @@
class SystemHook < WebHook
- def async_execute(data)
- Resque.enqueue(SystemHookWorker, id, data)
- end
-
def self.all_hooks_fire(data)
SystemHook.all.each do |sh|
sh.async_execute data
end
end
+
+ def async_execute(data)
+ Resque.enqueue(SystemHookWorker, id, data)
+ end
end
# == Schema Information
diff --git a/app/models/user.rb b/app/models/user.rb
index cf12fd60708..da0e9a0a202 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -27,53 +27,56 @@ class User < ActiveRecord::Base
validates :extern_uid, :allow_blank => true, :uniqueness => {:scope => :provider}
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)
- scope :blocked, where(blocked: true)
- 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
- self.password = self.password_confirmation = Devise.friendly_token.first(8)
+ # Scopes
+ scope :not_in_project, ->(project) { where("id not in (:ids)", ids: project.users.map(&:id) ) }
+ scope :admins, where(admin: true)
+ scope :blocked, where(blocked: true)
+ scope :active, where(blocked: false)
+
+ class << self
+ def filter filter_name
+ case filter_name
+ when "admins"; self.admins
+ when "blocked"; self.blocked
+ when "wop"; self.without_projects
+ else
+ self.active
+ end
end
- end
- def self.filter filter_name
- case filter_name
- when "admins"; self.admins
- when "blocked"; self.blocked
- when "wop"; self.without_projects
- else
- self.active
+ def without_projects
+ where('id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)')
end
- end
- def self.without_projects
- where('id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)')
- end
+ def create_from_omniauth(auth, ldap = false)
+ gitlab_auth.create_from_omniauth(auth, ldap)
+ end
- def self.create_from_omniauth(auth, ldap = false)
- gitlab_auth.create_from_omniauth(auth, ldap)
- end
+ def find_or_new_for_omniauth(auth)
+ gitlab_auth.find_or_new_for_omniauth(auth)
+ end
- def self.find_or_new_for_omniauth(auth)
- gitlab_auth.find_or_new_for_omniauth(auth)
- end
+ def find_for_ldap_auth(auth, signed_in_resource = nil)
+ gitlab_auth.find_for_ldap_auth(auth, signed_in_resource)
+ end
- def self.find_for_ldap_auth(auth, signed_in_resource = nil)
- gitlab_auth.find_for_ldap_auth(auth, signed_in_resource)
- end
+ def gitlab_auth
+ Gitlab::Auth.new
+ end
- def self.gitlab_auth
- Gitlab::Auth.new
+ def search query
+ where("name LIKE :query or email LIKE :query", query: "%#{query}%")
+ end
end
- def self.search query
- where("name LIKE :query OR email LIKE :query", query: "%#{query}%")
+ def generate_password
+ if self.force_random_password
+ self.password = self.password_confirmation = Devise.friendly_token.first(8)
+ end
end
end
diff --git a/app/models/users_project.rb b/app/models/users_project.rb
index 510b90cb9da..a3d5116f70d 100644
--- a/app/models/users_project.rb
+++ b/app/models/users_project.rb
@@ -14,62 +14,64 @@ class UsersProject < ActiveRecord::Base
after_save :update_repository
after_destroy :update_repository
- validates_uniqueness_of :user_id, scope: [:project_id], message: "already exists in project"
- validates_presence_of :user_id
- validates_presence_of :project_id
+ validates :user, presence: true
+ validates :user_id, uniqueness: { :scope => [:project_id], message: "already exists in project" }
+ validates :project, presence: true
delegate :name, :email, to: :user, prefix: true
- def self.bulk_delete(project, user_ids)
- UsersProject.transaction do
- UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project|
- users_project.destroy
+ class << self
+ def bulk_delete(project, user_ids)
+ UsersProject.transaction do
+ UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project|
+ users_project.destroy
+ end
end
end
- end
- def self.bulk_update(project, user_ids, project_access)
- UsersProject.transaction do
- UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project|
- users_project.project_access = project_access
- users_project.save
+ def bulk_update(project, user_ids, project_access)
+ UsersProject.transaction do
+ UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project|
+ users_project.project_access = project_access
+ users_project.save
+ end
end
end
- end
- def self.bulk_import(project, user_ids, project_access)
- UsersProject.transaction do
- user_ids.each do |user_id|
- users_project = UsersProject.new(
- project_access: project_access,
- user_id: user_id
- )
- users_project.project = project
- users_project.save
+ def bulk_import(project, user_ids, project_access)
+ UsersProject.transaction do
+ user_ids.each do |user_id|
+ users_project = UsersProject.new(
+ project_access: project_access,
+ user_id: user_id
+ )
+ users_project.project = project
+ users_project.save
+ end
end
end
- end
- def self.user_bulk_import(user, project_ids, project_access)
- UsersProject.transaction do
- project_ids.each do |project_id|
- users_project = UsersProject.new(
- project_access: project_access,
- )
- users_project.project_id = project_id
- users_project.user_id = user.id
- users_project.save
+ def user_bulk_import(user, project_ids, project_access)
+ UsersProject.transaction do
+ project_ids.each do |project_id|
+ users_project = UsersProject.new(
+ project_access: project_access,
+ )
+ users_project.project_id = project_id
+ users_project.user_id = user.id
+ users_project.save
+ end
end
end
- end
- def self.access_roles
- {
- "Guest" => GUEST,
- "Reporter" => REPORTER,
- "Developer" => DEVELOPER,
- "Master" => MASTER
- }
+ def access_roles
+ {
+ "Guest" => GUEST,
+ "Reporter" => REPORTER,
+ "Developer" => DEVELOPER,
+ "Master" => MASTER
+ }
+ end
end
def role_access
diff --git a/app/models/web_hook.rb b/app/models/web_hook.rb
index edfab8861ca..779b3a99f55 100644
--- a/app/models/web_hook.rb
+++ b/app/models/web_hook.rb
@@ -7,7 +7,7 @@ class WebHook < ActiveRecord::Base
default_timeout 10
validates :url, presence: true,
- format: { with: URI::regexp(%w(http https)), message: "should be a valid url" }
+ format: { with: URI::regexp(%w(http https)), message: "should be a valid url" }
def execute(data)
parsed_url = URI.parse(url)
diff --git a/app/models/wiki.rb b/app/models/wiki.rb
index c87ac89e503..3a431e4cb5b 100644
--- a/app/models/wiki.rb
+++ b/app/models/wiki.rb
@@ -5,8 +5,9 @@ class Wiki < ActiveRecord::Base
belongs_to :user
has_many :notes, as: :noteable, dependent: :destroy
- validates :content, :title, :user_id, presence: true
- validates :title, length: 1..250
+ validates :content, presence: true
+ validates :user, presence: true
+ validates :title, presence: true, length: 1..250
before_update :set_slug
@@ -16,21 +17,20 @@ class Wiki < ActiveRecord::Base
protected
+ def self.regenerate_from wiki
+ regenerated_field = [:slug, :content, :title]
+
+ new_wiki = Wiki.new
+ regenerated_field.each do |field|
+ new_wiki.send("#{field}=", wiki.send(field))
+ end
+ new_wiki
+ end
+
def set_slug
self.slug = self.title.parameterize
end
- class << self
- def regenerate_from wiki
- regenerated_field = [:slug, :content, :title]
-
- new_wiki = Wiki.new
- regenerated_field.each do |field|
- new_wiki.send("#{field}=", wiki.send(field))
- end
- new_wiki
- end
- end
end
# == Schema Information
diff --git a/app/roles/account.rb b/app/roles/account.rb
index b8c445a3d58..19465478915 100644
--- a/app/roles/account.rb
+++ b/app/roles/account.rb
@@ -41,7 +41,7 @@ module Account
# Remove user from all projects and
# set blocked attribute to true
def block
- users_projects.all.each do |membership|
+ users_projects.find_each do |membership|
return false unless membership.destroy
end
diff --git a/app/roles/authority.rb b/app/roles/authority.rb
index 9d9153db66e..dbdd98397b9 100644
--- a/app/roles/authority.rb
+++ b/app/roles/authority.rb
@@ -2,12 +2,12 @@ module Authority
# Compatible with all access rights
# Should be rewrited for new access rights
def add_access(user, *access)
- access = if access.include?(:admin)
- { project_access: UsersProject::MASTER }
+ access = if access.include?(:admin)
+ { project_access: UsersProject::MASTER }
elsif access.include?(:write)
- { project_access: UsersProject::DEVELOPER }
+ { project_access: UsersProject::DEVELOPER }
else
- { project_access: UsersProject::REPORTER }
+ { project_access: UsersProject::REPORTER }
end
opts = { user: user }
opts.merge!(access)
diff --git a/app/roles/issue_commonality.rb b/app/roles/issue_commonality.rb
index 304f08fda6c..b21d92a3083 100644
--- a/app/roles/issue_commonality.rb
+++ b/app/roles/issue_commonality.rb
@@ -8,12 +8,9 @@ module IssueCommonality
belongs_to :assignee, class_name: "User"
has_many :notes, as: :noteable, dependent: :destroy
- validates_presence_of :project_id
- validates_presence_of :author_id
-
- validates :title,
- presence: true,
- length: { within: 0..255 }
+ validates :project, presence: true
+ validates :author, presence: true
+ validates :title, presence: true, length: { within: 0..255 }
validates :closed, inclusion: { in: [true, false] }
scope :opened, where(closed: false)
diff --git a/app/roles/push_event.rb b/app/roles/push_event.rb
index a607f212f2a..a6041f18ea8 100644
--- a/app/roles/push_event.rb
+++ b/app/roles/push_event.rb
@@ -5,11 +5,11 @@ module PushEvent
false
end
- def tag?
+ def tag?
data[:ref]["refs/tags"]
end
- def branch?
+ def branch?
data[:ref]["refs/heads"]
end
@@ -25,7 +25,7 @@ module PushEvent
commit_to =~ /^00000/
end
- def md_ref?
+ def md_ref?
!(rm_ref? || new_ref?)
end
@@ -37,7 +37,7 @@ module PushEvent
data[:after]
end
- def ref_name
+ def ref_name
if tag?
tag_name
else