diff --git a/app/models/concerns/internal_id.rb b/app/models/concerns/internal_id.rb index 6fc12202dde..3f7be40ed7b 100644 --- a/app/models/concerns/internal_id.rb +++ b/app/models/concerns/internal_id.rb @@ -7,8 +7,7 @@ module InternalId end def set_iid - max_iid = case self.class - when Issue, MergeRequest + max_iid = if self.paranoid? project.send(self.class.name.tableize).with_deleted.maximum(:iid) else project.send(self.class.name.tableize).maximum(:iid) diff --git a/app/models/user.rb b/app/models/user.rb index c011af03591..567af921742 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -440,6 +440,10 @@ class User < ActiveRecord::Base Project.where("projects.id IN (#{projects_union.to_sql})") end + def owner?(project) + owned_projects.include?(project) + end + def owned_projects @owned_projects ||= Project.where('namespace_id IN (?) OR namespace_id = ?', diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml index 2f0a91267eb..6fa059cbe68 100644 --- a/app/views/projects/issues/show.html.haml +++ b/app/views/projects/issues/show.html.haml @@ -45,10 +45,6 @@ - if can?(current_user, :update_issue, @issue) = link_to 'Reopen issue', issue_path(@issue, issue: {state_event: :reopen}, status_only: true, format: 'json'), data: {no_turbolink: true}, class: "btn btn-nr btn-grouped btn-reopen #{issue_button_visibility(@issue, false)}", title: 'Reopen issue' = link_to 'Close issue', issue_path(@issue, issue: {state_event: :close}, status_only: true, format: 'json'), data: {no_turbolink: true}, class: "btn btn-nr btn-grouped btn-close #{issue_button_visibility(@issue, true)}", title: 'Close issue' - - if current_user.admin? - = link_to namespace_project_issue_path(@project.namespace, @project, @issue), method: :delete, class: 'btn btn-grouped' do - = icon('trash-o') - Delete = link_to edit_namespace_project_issue_path(@project.namespace, @project, @issue), class: 'btn btn-nr btn-grouped issuable-edit' do = icon('pencil-square-o') Edit diff --git a/app/views/projects/merge_requests/show/_mr_title.html.haml b/app/views/projects/merge_requests/show/_mr_title.html.haml index 3a7208cb3e8..fb05c21648d 100644 --- a/app/views/projects/merge_requests/show/_mr_title.html.haml +++ b/app/views/projects/merge_requests/show/_mr_title.html.haml @@ -33,7 +33,3 @@ Edit - if @merge_request.closed? = link_to 'Reopen', merge_request_path(@merge_request, merge_request: {state_event: :reopen }), method: :put, class: 'btn btn-nr btn-grouped btn-reopen reopen-mr-link', title: 'Reopen merge request' - - if current_user.admin? - = link_to namespace_project_merge_request_path(@project.namespace, @project, @merge_request), method: :delete, class: 'btn btn-grouped' do - = icon('trash-o') - Delete diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index 80418e69d9c..6030abe390e 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -106,6 +106,10 @@ = f.submit "Submit #{issuable.class.model_name.human.downcase}", class: 'btn btn-create' - else = f.submit 'Save changes', class: 'btn btn-save' + - if current_user.admin? || current_user.owner?(@project) + = link_to namespace_project_issue_path(@project.namespace, @project, issuable), method: :delete, class: 'btn' do + = icon('trash-o') + Delete - if !issuable.persisted? && !issuable.project.empty_repo? && (guide_url = contribution_guide_path(issuable.project)) .inline.prepend-left-10 diff --git a/db/schema.rb b/db/schema.rb index a4a17770cd6..1aa9d435153 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -948,7 +948,6 @@ ActiveRecord::Schema.define(version: 20160316204731) do t.string "unlock_token" t.datetime "otp_grace_period_started_at" t.boolean "ldap_email", default: false, null: false - t.boolean "external", default: false end add_index "users", ["admin"], name: "index_users_on_admin", using: :btree