Skip to content
Snippets Groups Projects
Commit cc869d5d authored by Andrew8xx8's avatar Andrew8xx8
Browse files

Private field added to snippet

parent 77faffbd
No related branches found
No related tags found
No related merge requests found
class SnippetsController < ProjectResourceController
before_filter :module_enabled
before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw]
# Allow read any snippet
before_filter :authorize_read_snippet!
# Allow write(create) snippet
before_filter :authorize_write_snippet!, only: [:new, :create]
# Allow modify snippet
before_filter :authorize_modify_snippet!, only: [:edit, :update]
# Allow destroy snippet
before_filter :authorize_admin_snippet!, only: [:destroy]
respond_to :html
def index
@snippets = @project.snippets.fresh.non_expired
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
end
def update
@snippet.update_attributes(params[:snippet])
if @snippet.valid?
redirect_to [@project, @snippet]
else
respond_with(@snippet)
end
end
def show
@note = @project.notes.new(noteable: @snippet)
@target_type = :snippet
@target_id = @snippet.id
end
def destroy
return access_denied! unless can?(current_user, :admin_snippet, @snippet)
@snippet.destroy
redirect_to project_snippets_path(@project)
end
def raw
send_data(
@snippet.content,
type: "text/plain",
disposition: 'inline',
filename: @snippet.file_name
)
end
protected
def snippet
@snippet ||= @project.snippets.find(params[:id])
end
def authorize_modify_snippet!
return render_404 unless can?(current_user, :modify_snippet, @snippet)
end
def authorize_admin_snippet!
return render_404 unless can?(current_user, :admin_snippet, @snippet)
end
def module_enabled
return render_404 unless @project.snippets_enabled
end
end
class AddPrivateToSnippets < ActiveRecord::Migration
def change
add_column :snippets, :private, :boolean
end
end
Loading
@@ -11,7 +11,7 @@
Loading
@@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
   
ActiveRecord::Schema.define(:version => 20130318212250) do ActiveRecord::Schema.define(:version => 20130323174317) do
   
create_table "events", :force => true do |t| create_table "events", :force => true do |t|
t.string "target_type" t.string "target_type"
Loading
@@ -190,6 +190,7 @@ ActiveRecord::Schema.define(:version => 20130318212250) do
Loading
@@ -190,6 +190,7 @@ ActiveRecord::Schema.define(:version => 20130318212250) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
t.string "file_name" t.string "file_name"
t.datetime "expires_at" t.datetime "expires_at"
t.boolean "private"
end end
   
add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at" add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at"
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