Fixing requests after namespaces. Fixed admin bug with access to project
This commit is contained in:
parent
e92b563acf
commit
0e1635a68a
14 changed files with 35 additions and 62 deletions
|
@ -42,4 +42,14 @@ class Admin::ProjectsController < AdminController
|
|||
|
||||
redirect_to projects_url, notice: 'Project was successfully deleted.'
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def project
|
||||
id = params[:project_id] || params[:id]
|
||||
id = id.split("/") if id.include?("/")
|
||||
|
||||
@project ||= Project.find_by_path(id)
|
||||
@project || render_404
|
||||
end
|
||||
end
|
||||
|
|
|
@ -88,7 +88,7 @@ module ApplicationHelper
|
|||
[ "Users", users.map {|u| [u.human_name, u.id]} ]
|
||||
]
|
||||
|
||||
if selected == :current_user
|
||||
if selected == :current_user && current_user.namespace
|
||||
selected = current_user.namespace.id
|
||||
end
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class UserObserver < ActiveRecord::Observer
|
||||
def after_create(user)
|
||||
user.create_namespace(code: user.username, name: user.name)
|
||||
user.create_namespace(path: user.username, name: user.name)
|
||||
|
||||
log_info("User \"#{user.name}\" (#{user.email}) was created")
|
||||
|
||||
|
@ -13,7 +13,7 @@ class UserObserver < ActiveRecord::Observer
|
|||
|
||||
def after_save user
|
||||
if user.username_changed? and user.namespace
|
||||
user.namespace.update_attributes(code: user.username)
|
||||
user.namespace.update_attributes(path: user.username)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -38,10 +38,7 @@ module Gitlab
|
|||
# Example Request
|
||||
# POST /projects
|
||||
post do
|
||||
params[:code] ||= params[:name]
|
||||
params[:path] ||= params[:name]
|
||||
attrs = attributes_for_keys [:path,
|
||||
:name,
|
||||
attrs = attributes_for_keys [:name,
|
||||
:description,
|
||||
:default_branch,
|
||||
:issues_enabled,
|
||||
|
|
|
@ -13,7 +13,7 @@ describe CommitsController do
|
|||
describe "GET show" do
|
||||
context "as atom feed" do
|
||||
it "should render as atom" do
|
||||
get :show, project_id: project.code, id: "master.atom"
|
||||
get :show, project_id: project.path, id: "master.atom"
|
||||
response.should be_success
|
||||
response.content_type.should == 'application/atom+xml'
|
||||
end
|
||||
|
|
|
@ -12,7 +12,7 @@ FactoryGirl.define do
|
|||
factory :user, aliases: [:author, :assignee, :owner] do
|
||||
email { Faker::Internet.email }
|
||||
name
|
||||
username 'john'
|
||||
username { Faker::Internet.user_name }
|
||||
password "123456"
|
||||
password_confirmation { password }
|
||||
|
||||
|
|
|
@ -169,9 +169,7 @@ describe Notify do
|
|||
end
|
||||
|
||||
describe 'project access changed' do
|
||||
let(:project) { create(:project,
|
||||
path: "Fuu",
|
||||
code: "Fuu") }
|
||||
let(:project) { create(:project) }
|
||||
let(:user) { create(:user) }
|
||||
let(:users_project) { create(:users_project,
|
||||
project: project,
|
||||
|
|
|
@ -13,7 +13,12 @@ describe UserObserver do
|
|||
end
|
||||
|
||||
context 'when a new user is created' do
|
||||
let(:user) { double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', username: 'root') }
|
||||
let(:user) { double(:user, id: 42,
|
||||
password: 'P@ssword!',
|
||||
name: 'John',
|
||||
email: 'u@mail.local',
|
||||
username: 'root',
|
||||
create_namespace: true) }
|
||||
let(:notification) { double :notification }
|
||||
|
||||
it 'sends an email' do
|
||||
|
|
|
@ -2,9 +2,7 @@ require 'spec_helper'
|
|||
|
||||
describe UsersProjectObserver do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project,
|
||||
code: "Fuu",
|
||||
path: "Fuu" ) }
|
||||
let(:project) { create(:project) }
|
||||
let(:users_project) { create(:users_project,
|
||||
project: project,
|
||||
user: user )}
|
||||
|
|
|
@ -2,9 +2,7 @@ require 'spec_helper'
|
|||
|
||||
describe "Admin::Hooks" do
|
||||
before do
|
||||
@project = create(:project,
|
||||
name: "LeGiT",
|
||||
code: "LGT")
|
||||
@project = create(:project)
|
||||
login_as :admin
|
||||
|
||||
@system_hook = create(:system_hook)
|
||||
|
|
|
@ -39,8 +39,8 @@ describe "Admin::Projects" do
|
|||
end
|
||||
|
||||
it "should have project edit page" do
|
||||
page.should have_content("Project name")
|
||||
page.should have_content("URL")
|
||||
page.should have_content("Edit project")
|
||||
page.should have_button("Save Project")
|
||||
end
|
||||
|
||||
describe "Update project" do
|
||||
|
@ -60,39 +60,6 @@ describe "Admin::Projects" do
|
|||
end
|
||||
end
|
||||
|
||||
describe "GET /admin/projects/new" do
|
||||
before do
|
||||
visit admin_projects_path
|
||||
click_link "New Project"
|
||||
end
|
||||
|
||||
it "should be correct path" do
|
||||
current_path.should == new_admin_project_path
|
||||
end
|
||||
|
||||
it "should have labels for new project" do
|
||||
page.should have_content("Project name is")
|
||||
end
|
||||
end
|
||||
|
||||
describe "POST /admin/projects" do
|
||||
before do
|
||||
visit new_admin_project_path
|
||||
fill_in 'project_name', with: 'NewProject'
|
||||
expect { click_button "Create project" }.to change { Project.count }.by(1)
|
||||
@project = Project.last
|
||||
end
|
||||
|
||||
it "should be correct path" do
|
||||
current_path.should == admin_project_path(@project)
|
||||
end
|
||||
|
||||
it "should show project" do
|
||||
page.should have_content(@project.name)
|
||||
page.should have_content(@project.path)
|
||||
end
|
||||
end
|
||||
|
||||
describe "Add new team member" do
|
||||
before do
|
||||
@new_user = create(:user)
|
||||
|
|
|
@ -23,6 +23,7 @@ describe "Admin::Users" do
|
|||
@password = "123ABC"
|
||||
visit new_admin_user_path
|
||||
fill_in "user_name", with: "Big Bang"
|
||||
fill_in "user_username", with: "bang"
|
||||
fill_in "user_email", with: "bigbang@mail.com"
|
||||
fill_in "user_password", with: @password
|
||||
fill_in "user_password_confirmation", with: @password
|
||||
|
|
|
@ -11,7 +11,7 @@ describe Gitlab::API do
|
|||
|
||||
describe "GET /projects/:id/milestones" do
|
||||
it "should return project milestones" do
|
||||
get api("/projects/#{project.code}/milestones", user)
|
||||
get api("/projects/#{project.path}/milestones", user)
|
||||
response.status.should == 200
|
||||
json_response.should be_an Array
|
||||
json_response.first['title'].should == milestone.title
|
||||
|
@ -20,7 +20,7 @@ describe Gitlab::API do
|
|||
|
||||
describe "GET /projects/:id/milestones/:milestone_id" do
|
||||
it "should return a project milestone by id" do
|
||||
get api("/projects/#{project.code}/milestones/#{milestone.id}", user)
|
||||
get api("/projects/#{project.path}/milestones/#{milestone.id}", user)
|
||||
response.status.should == 200
|
||||
json_response['title'].should == milestone.title
|
||||
end
|
||||
|
@ -28,7 +28,7 @@ describe Gitlab::API do
|
|||
|
||||
describe "POST /projects/:id/milestones" do
|
||||
it "should create a new project milestone" do
|
||||
post api("/projects/#{project.code}/milestones", user),
|
||||
post api("/projects/#{project.path}/milestones", user),
|
||||
title: 'new milestone'
|
||||
response.status.should == 201
|
||||
json_response['title'].should == 'new milestone'
|
||||
|
@ -38,7 +38,7 @@ describe Gitlab::API do
|
|||
|
||||
describe "PUT /projects/:id/milestones/:milestone_id" do
|
||||
it "should update a project milestone" do
|
||||
put api("/projects/#{project.code}/milestones/#{milestone.id}", user),
|
||||
put api("/projects/#{project.path}/milestones/#{milestone.id}", user),
|
||||
title: 'updated title'
|
||||
response.status.should == 200
|
||||
json_response['title'].should == 'updated title'
|
||||
|
|
|
@ -53,7 +53,6 @@ describe Gitlab::API do
|
|||
|
||||
it "should assign attributes to project" do
|
||||
project = attributes_for(:project, {
|
||||
path: project.name.parameterize,
|
||||
description: Faker::Lorem.sentence,
|
||||
default_branch: 'stable',
|
||||
issues_enabled: false,
|
||||
|
@ -257,7 +256,7 @@ describe Gitlab::API do
|
|||
describe "POST /projects/:id/snippets" do
|
||||
it "should create a new project snippet" do
|
||||
post api("/projects/#{project.path}/snippets", user),
|
||||
title: 'api test', file_name: 'sample.rb', path: 'test'
|
||||
title: 'api test', file_name: 'sample.rb', code: 'test'
|
||||
response.status.should == 201
|
||||
json_response['title'].should == 'api test'
|
||||
end
|
||||
|
@ -266,10 +265,10 @@ describe Gitlab::API do
|
|||
describe "PUT /projects/:id/snippets/:shippet_id" do
|
||||
it "should update an existing project snippet" do
|
||||
put api("/projects/#{project.path}/snippets/#{snippet.id}", user),
|
||||
path: 'updated path'
|
||||
code: 'updated code'
|
||||
response.status.should == 200
|
||||
json_response['title'].should == 'example'
|
||||
snippet.reload.content.should == 'updated path'
|
||||
snippet.reload.content.should == 'updated code'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue