def project_report_rules
project_guest_rules + [
:download_code,
- :write_snippet,
+ :fork_project
+ :write_project_snippet
]
end
has_many :milestones, dependent: :destroy
has_many :users_projects, dependent: :destroy
has_many :notes, dependent: :destroy
- has_many :snippets, dependent: :destroy
+ has_many :snippets, dependent: :destroy, class_name: "ProjectSnippet"
- has_many :deploy_keys, dependent: :destroy, class_name: "Key", foreign_key: "project_id"
has_many :hooks, dependent: :destroy, class_name: "ProjectHook"
- has_many :wikis, dependent: :destroy
has_many :protected_branches, dependent: :destroy
has_many :user_team_project_relationships, dependent: :destroy
has_many :groups, class_name: "Group", foreign_key: :owner_id
# Teams
- has_many :own_teams,
- class_name: "UserTeam",
- foreign_key: :owner_id,
- dependent: :destroy
-
- has_many :user_team_user_relationships, dependent: :destroy
- has_many :user_teams, through: :user_team_user_relationships
+ has_many :own_teams, dependent: :destroy, class_name: "UserTeam", foreign_key: :owner_id
+ has_many :user_team_user_relationships, dependent: :destroy
+ has_many :user_teams, through: :user_team_user_relationships
has_many :user_team_project_relationships, through: :user_teams
- has_many :team_projects, through: :user_team_project_relationships
+ has_many :team_projects, through: :user_team_project_relationships
# Projects
+ has_many :snippets, dependent: :destroy, foreign_key: :author_id, class_name: "Snippet"
has_many :users_projects, dependent: :destroy
has_many :issues, dependent: :destroy, foreign_key: :author_id
has_many :notes, dependent: :destroy, foreign_key: :author_id
.form-actions
= f.submit 'Save', class: "btn-save btn"
- = link_to "Cancel", project_snippets_path(@project), class: " btn"
+ = link_to "Cancel", snippets_path(@project), class: " btn"
- unless @snippet.new_record?
- .pull-right= link_to 'Destroy', [@project, @snippet], confirm: 'Removed snippet cannot be restored! Are you sure?', method: :delete, class: "btn pull-right danger delete-snippet", id: "destroy_snippet_#{@snippet.id}"
- .pull-right= link_to 'Destroy', snippet_path(@snippet), confirm: 'Are you sure?', method: :delete, class: "btn pull-right danger delete-snippet", id: "destroy_snippet_#{@snippet.id}"
++ .pull-right= link_to 'Destroy', snippet_path(@snippet), confirm: 'Removed snippet cannot be restored! Are you sure?', method: :delete, class: "btn pull-right danger delete-snippet", id: "destroy_snippet_#{@snippet.id}"
:javascript
resources :compare, only: [:index, :create]
resources :blame, only: [:show], constraints: {id: /.+/}
resources :graph, only: [:show], constraints: {id: /(?:[^.]|\.(?!json$))+/, format: /json/}
- match "/compare/:from...:to" => "compare#show", as: "compare",
- :via => [:get, :post], constraints: {from: /.+/, to: /.+/}
+ match "/compare/:from...:to" => "compare#show", as: "compare", via: [:get, :post], constraints: {from: /.+/, to: /.+/}
+ scope module: :projects do
+ resources :snippets do
+ member do
+ get "raw"
+ end
+ end
+ end
+
resources :wikis, only: [:show, :edit, :destroy, :create] do
collection do
get :pages
end
end
-
resources :team, controller: 'team_members', only: [:index]
resources :milestones, except: [:destroy]
- resources :labels, only: [:index]
+
+ resources :labels, only: [:index] do
+ collection do
+ post :generate
+ end
+ end
+
resources :issues, except: [:destroy] do
collection do
- post :sort
post :bulk_update
- get :search
end
end
visit project_wiki_path(@project, :home)
end
+ # ----------------------------------------
+ # Public Projects
+ # ----------------------------------------
+
+ step 'I visit the public projects area' do
+ visit public_root_path
+ end
+
++ # ----------------------------------------
++ # Snippets
++ # ----------------------------------------
++
+ Given 'I visit project "Shop" snippets page' do
+ visit project_snippets_path(project)
+ end
+
+ Given 'I visit snippets page' do
+ visit snippets_path
+ end
+
+ Given 'I visit new snippet page' do
+ visit new_snippet_path
+ end
+
def root_ref
@project.repository.root_ref
end
url
end
- factory :snippet do
- factory :wiki do
- title
- content
- user
- end
-
+ factory :project_snippet do
project
author
title
include ApplicationHelper
include IssuesHelper
- let!(:project) { create(:project) }
+ let!(:project) { create(:project_with_code) }
let(:user) { create(:user, username: 'gfm') }
- let(:commit) { CommitDecorator.decorate(project.repository.commit) }
+ let(:commit) { project.repository.commit }
let(:issue) { create(:issue, project: project) }
let(:merge_request) { create(:merge_request, project: project) }
- let(:snippet) { create(:snippet, project: project) }
+ let(:snippet) { create(:project_snippet, project: project) }
let(:member) { project.users_projects.where(user_id: user).first }
before do
it { should have_many(:milestones).dependent(:destroy) }
it { should have_many(:users_projects).dependent(:destroy) }
it { should have_many(:notes).dependent(:destroy) }
- it { should have_many(:snippets).dependent(:destroy) }
+ it { should have_many(:snippets).class_name('ProjectSnippet').dependent(:destroy) }
- it { should have_many(:deploy_keys).dependent(:destroy) }
+ it { should have_many(:deploy_keys_projects).dependent(:destroy) }
+ it { should have_many(:deploy_keys) }
it { should have_many(:hooks).dependent(:destroy) }
- it { should have_many(:wikis).dependent(:destroy) }
it { should have_many(:protected_branches).dependent(:destroy) }
+ it { should have_one(:forked_project_link).dependent(:destroy) }
end
describe "Mass assignment" do
let(:user2) { create(:user) }
let(:user3) { create(:user) }
let(:admin) { create(:admin) }
- let!(:project) { create(:project, namespace: user.namespace ) }
+ let!(:project) { create(:project_with_code, creator_id: user.id) }
let!(:hook) { create(:project_hook, project: project, url: "http://example.com") }
- let!(:snippet) { create(:snippet, author: user, project: project, title: 'example') }
+ let!(:snippet) { create(:project_snippet, author: user, project: project, title: 'example') }
let!(:users_project) { create(:users_project, user: user, project: project, project_access: UsersProject::MASTER) }
let!(:users_project2) { create(:users_project, user: user3, project: project, project_access: UsersProject::DEVELOPER) }
- let(:key) { create(:key, project: project) }
before { project.team << [user, :reporter] }