diff options
author | Andrey Kumanyaev <me@zzet.org> | 2012-10-09 04:10:04 +0400 |
---|---|---|
committer | Andrey Kumanyaev <me@zzet.org> | 2012-10-09 04:10:04 +0400 |
commit | df7c52489a890ac38491682b4a3399beb7cdbc86 (patch) | |
tree | 9a81bee70285ac1e5a0c158eab5f4c981e49b86d /app | |
parent | a635b9da97b0e104b8ac1a846344ec8a4abd3123 (diff) | |
download | gitlab-ce-df7c52489a890ac38491682b4a3399beb7cdbc86.tar.gz |
simple refactoring
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/commits_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/merge_requests_helper.rb | 2 | ||||
-rw-r--r-- | app/models/ability.rb | 101 | ||||
-rw-r--r-- | app/models/event.rb | 19 | ||||
-rw-r--r-- | app/models/group.rb | 28 | ||||
-rw-r--r-- | app/models/key.rb | 11 | ||||
-rw-r--r-- | app/models/merge_request.rb | 7 | ||||
-rw-r--r-- | app/models/milestone.rb | 3 | ||||
-rw-r--r-- | app/models/note.rb | 16 | ||||
-rw-r--r-- | app/models/project.rb | 92 | ||||
-rw-r--r-- | app/models/protected_branch.rb | 3 | ||||
-rw-r--r-- | app/models/snippet.rb | 4 | ||||
-rw-r--r-- | app/models/system_hook.rb | 8 | ||||
-rw-r--r-- | app/models/user.rb | 69 | ||||
-rw-r--r-- | app/models/users_project.rb | 84 | ||||
-rw-r--r-- | app/models/web_hook.rb | 2 | ||||
-rw-r--r-- | app/models/wiki.rb | 26 | ||||
-rw-r--r-- | app/roles/account.rb | 2 | ||||
-rw-r--r-- | app/roles/authority.rb | 8 | ||||
-rw-r--r-- | app/roles/issue_commonality.rb | 9 | ||||
-rw-r--r-- | app/roles/push_event.rb | 8 |
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 |