Skip to content
Snippets Groups Projects
Commit 0e1635a6 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Fixing requests after namespaces. Fixed admin bug with access to project

parent e92b563a
No related branches found
No related tags found
1 merge request!2051User/Group namespaces for projects
Showing with 35 additions and 62 deletions
Loading
Loading
@@ -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
Loading
Loading
@@ -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
 
Loading
Loading
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")
 
Loading
Loading
@@ -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
 
Loading
Loading
Loading
Loading
@@ -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,
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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 }
 
Loading
Loading
Loading
Loading
@@ -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,
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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 )}
Loading
Loading
Loading
Loading
@@ -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)
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
@@ -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)
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
@@ -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'
Loading
Loading
@@ -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'
Loading
Loading
Loading
Loading
@@ -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,
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment