1.1pre1
This commit is contained in:
parent
3a2b273316
commit
6b030fd41d
83 changed files with 1089 additions and 136 deletions
|
@ -27,11 +27,15 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
def authenticate_admin!
|
||||
return redirect_to(new_user_session_path) unless current_user.is_admin?
|
||||
return render_404 unless current_user.is_admin?
|
||||
end
|
||||
|
||||
def authorize_project!(action)
|
||||
return redirect_to(new_user_session_path) unless can?(current_user, action, project)
|
||||
return render_404 unless can?(current_user, action, project)
|
||||
end
|
||||
|
||||
def access_denied!
|
||||
render_404
|
||||
end
|
||||
|
||||
def method_missing(method_sym, *arguments, &block)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
class IssuesController < ApplicationController
|
||||
before_filter :authenticate_user!
|
||||
before_filter :project
|
||||
before_filter :issue, :only => [:edit, :update, :destroy, :show]
|
||||
|
||||
# Authorize
|
||||
before_filter :add_project_abilities
|
||||
before_filter :authorize_read_issue!
|
||||
before_filter :authorize_write_issue!, :only => [:new, :create, :close, :edit, :update, :sort]
|
||||
before_filter :authorize_admin_issue!, :only => [:destroy]
|
||||
|
||||
respond_to :js
|
||||
|
||||
|
@ -30,12 +30,10 @@ class IssuesController < ApplicationController
|
|||
end
|
||||
|
||||
def edit
|
||||
@issue = @project.issues.find(params[:id])
|
||||
respond_with(@issue)
|
||||
end
|
||||
|
||||
def show
|
||||
@issue = @project.issues.find(params[:id])
|
||||
@notes = @issue.notes
|
||||
@note = @project.notes.new(:noteable => @issue)
|
||||
end
|
||||
|
@ -51,7 +49,6 @@ class IssuesController < ApplicationController
|
|||
end
|
||||
|
||||
def update
|
||||
@issue = @project.issues.find(params[:id])
|
||||
@issue.update_attributes(params[:issue])
|
||||
|
||||
respond_to do |format|
|
||||
|
@ -62,7 +59,8 @@ class IssuesController < ApplicationController
|
|||
|
||||
|
||||
def destroy
|
||||
@issue = @project.issues.find(params[:id])
|
||||
return access_denied! unless can?(current_user, :admin_issue, @issue)
|
||||
|
||||
@issue.destroy
|
||||
|
||||
respond_to do |format|
|
||||
|
@ -79,4 +77,10 @@ class IssuesController < ApplicationController
|
|||
|
||||
render :nothing => true
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def issue
|
||||
@issue ||= @project.issues.find(params[:id])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,7 +4,6 @@ class NotesController < ApplicationController
|
|||
# Authorize
|
||||
before_filter :add_project_abilities
|
||||
before_filter :authorize_write_note!, :only => [:create]
|
||||
before_filter :authorize_admin_note!, :only => [:destroy]
|
||||
|
||||
respond_to :js
|
||||
|
||||
|
@ -25,6 +24,9 @@ class NotesController < ApplicationController
|
|||
|
||||
def destroy
|
||||
@note = @project.notes.find(params[:id])
|
||||
|
||||
return access_denied! unless can?(current_user, :admin_note, @note)
|
||||
|
||||
@note.destroy
|
||||
|
||||
respond_to do |format|
|
||||
|
@ -41,6 +43,8 @@ class NotesController < ApplicationController
|
|||
Notify.note_commit_email(u, @note).deliver
|
||||
when "Issue" then
|
||||
Notify.note_issue_email(u, @note).deliver
|
||||
when "Snippet"
|
||||
true
|
||||
else
|
||||
Notify.note_wall_email(u, @note).deliver
|
||||
end
|
||||
|
|
|
@ -3,6 +3,12 @@ class ProfileController < ApplicationController
|
|||
@user = current_user
|
||||
end
|
||||
|
||||
def social_update
|
||||
@user = current_user
|
||||
@user.update_attributes(params[:user])
|
||||
redirect_to [:profile]
|
||||
end
|
||||
|
||||
def password
|
||||
@user = current_user
|
||||
end
|
||||
|
|
|
@ -60,14 +60,21 @@ class ProjectsController < ApplicationController
|
|||
end
|
||||
|
||||
def show
|
||||
@repo = project.repo
|
||||
@commit = @repo.commits.first
|
||||
@tree = @commit.tree
|
||||
@tree = @tree / params[:path] if params[:path]
|
||||
return render "projects/empty" unless @project.repo_exists?
|
||||
@date = case params[:view]
|
||||
when "week" then Date.today - 7.days
|
||||
when "day" then Date.today
|
||||
else nil
|
||||
end
|
||||
|
||||
rescue Grit::NoSuchPathError => ex
|
||||
respond_to do |format|
|
||||
format.html {render "projects/empty"}
|
||||
if @date
|
||||
@date = @date.at_beginning_of_day
|
||||
|
||||
@commits = @project.commits_since(@date)
|
||||
@messages = project.notes.since(@date).order("created_at DESC")
|
||||
else
|
||||
@commits = @project.fresh_commits
|
||||
@messages = project.notes.fresh.limit(10)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -76,8 +83,15 @@ class ProjectsController < ApplicationController
|
|||
#
|
||||
|
||||
def wall
|
||||
@notes = @project.common_notes
|
||||
@note = Note.new
|
||||
@notes = @project.common_notes.order("created_at DESC")
|
||||
|
||||
@notes = case params[:view]
|
||||
when "week" then @notes.since((Date.today - 7.days).at_beginning_of_day)
|
||||
when "all" then @notes.all
|
||||
when "day" then @notes.since(Date.today.at_beginning_of_day)
|
||||
else @notes.fresh.limit(10)
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
|
|
62
app/controllers/snippets_controller.rb
Normal file
62
app/controllers/snippets_controller.rb
Normal file
|
@ -0,0 +1,62 @@
|
|||
class SnippetsController < ApplicationController
|
||||
before_filter :authenticate_user!
|
||||
before_filter :project
|
||||
|
||||
# Authorize
|
||||
before_filter :add_project_abilities
|
||||
before_filter :authorize_read_snippet!
|
||||
before_filter :authorize_write_snippet!, :only => [:new, :create, :close, :edit, :update, :sort]
|
||||
|
||||
respond_to :html
|
||||
|
||||
def index
|
||||
@snippets = @project.snippets
|
||||
end
|
||||
|
||||
def new
|
||||
@snippet = @project.snippets.new
|
||||
end
|
||||
|
||||
def create
|
||||
@snippet = @project.snippets.new(params[:snippet])
|
||||
@snippet.author = current_user
|
||||
@snippet.save
|
||||
|
||||
if @snippet.valid?
|
||||
redirect_to [@project, @snippet]
|
||||
else
|
||||
respond_with(@snippet)
|
||||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
@snippet = @project.snippets.find(params[:id])
|
||||
end
|
||||
|
||||
def update
|
||||
@snippet = @project.snippets.find(params[:id])
|
||||
@snippet.update_attributes(params[:snippet])
|
||||
|
||||
if @snippet.valid?
|
||||
redirect_to [@project, @snippet]
|
||||
else
|
||||
respond_with(@snippet)
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
@snippet = @project.snippets.find(params[:id])
|
||||
@notes = @snippet.notes
|
||||
@note = @project.notes.new(:noteable => @snippet)
|
||||
end
|
||||
|
||||
def destroy
|
||||
@snippet = @project.snippets.find(params[:id])
|
||||
|
||||
return access_denied! unless can?(current_user, :admin_snippet, @snippet)
|
||||
|
||||
@snippet.destroy
|
||||
|
||||
redirect_to project_snippets_path(@project)
|
||||
end
|
||||
end
|
|
@ -3,8 +3,8 @@ class TeamMembersController < ApplicationController
|
|||
|
||||
# Authorize
|
||||
before_filter :add_project_abilities
|
||||
before_filter :authorize_read_team_member!
|
||||
before_filter :authorize_admin_team_member!, :only => [:new, :create, :destroy, :update]
|
||||
before_filter :authorize_read_project!
|
||||
before_filter :authorize_admin_project!, :only => [:new, :create, :destroy, :update]
|
||||
|
||||
def show
|
||||
@team_member = project.users_projects.find(params[:id])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue