Class: DmCms::Admin::CmsBlogsController

Inherits:
AdminController
  • Object
show all
Includes:
PermittedParams
Defined in:
app/controllers/dm_cms/admin/cms_blogs_controller.rb

Instance Method Summary collapse

Methods included from PermittedParams

#cms_blog_params, #cms_contentitem_params, #cms_page_params, #cms_post_params, #cms_snippet_params, #media_file_params

Instance Method Details

#ajax_toggle_permissionObject




118
119
120
121
122
123
124
125
126
127
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 118

def ajax_toggle_permission
  authorize! :manage_content, :all
  user = User.find(params[:user_id])
  role = params[:role].to_sym
  if user && [:manage_content].include?(role)
    user.has_role?(role, @blog) ? user.remove_role(role, @blog) : user.add_role(role, @blog)
    user.save!
  end
  render nothing: true
end

#blog_add_memberObject

Add user(s) to blog

> user_id: add a single user




79
80
81
82
83
84
85
86
87
88
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 79

def blog_add_member
  authorize! :manage_content, @blog
  if !params[:user_id].blank?
    user = User.find(params[:user_id])
    @blog.add_member(user)
    redirect_to admin_cms_blog_url(@blog), notice: "Blog access granted for #{user.full_name}"
  else
    redirect_to admin_cms_blog_url(@blog), alert: "Incorrect parameters supplied"
  end
end

#blog_delete_memberObject




91
92
93
94
95
96
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 91

def blog_delete_member
  authorize! :manage_content, @blog
  user = User.find(params[:user_id])
  @blog.remove_member(user)
  redirect_to admin_cms_blog_url(@blog), notice: "Blog access removed for #{user.full_name}"
end

#blog_usersObject




69
70
71
72
73
74
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 69

def blog_users
  authorize! :manage_content, @blog
  respond_to do |format|
    format.json { render json: BlogUserDatatable.new(view_context, @blog) }
  end
end

#createObject




20
21
22
23
24
25
26
27
28
29
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 20

def create
  authorize! :manage_content, :all
  @blog = CmsBlog.new(cms_blog_params)
  
  if @blog.save
    redirect_to admin_cms_blog_url(@blog), notice: 'Blog was successfully created.'
  else
    render action: :new
  end
end

#destroyObject




52
53
54
55
56
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 52

def destroy
  authorize! :manage_content, :all
  @blog.destroy
  redirect_to admin_cms_blogs_url
end

#editObject




32
33
34
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 32

def edit
  authorize! :manage_content, @blog
end

#indexObject




8
9
10
11
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 8

def index
  authorize! :access_content_section, :all
  @blogs = can?(:manage_content, :all) ? CmsBlog.all : CmsBlog.with_role(:manage_content, current_user)
end

#newObject




14
15
16
17
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 14

def new
  authorize! :manage_content, :all
  @blog = CmsBlog.new
end

#permissionsObject




99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 99

def permissions
  authorize! :manage_content, :all
  if put_or_post?
    if params[:user][:user_id]
      user = User.find(params[:user][:user_id])
      if user
        roles = params[:user].delete(:roles)
        [:manage_content].each do |role|
          roles[role].as_boolean ? user.add_role(role, @blog) : user.remove_role(role, @blog)
        end
        user.save!
      end
    end
  end
  @content_managers = User.with_role(:content_manager)
  @content_managers_alacarte = User.with_role(:content_manager_alacarte)
end

#showObject




47
48
49
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 47

def show
  authorize! :manage_content, @blog
end

#sortObject




59
60
61
62
63
64
65
66
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 59

def sort
  if can? :manage_content, :all
    @blog.update_attribute(:row_order_position, params[:item][:row_order_position])
  end

  #--- this action will be called via ajax
  render nothing: true
end

#updateObject




37
38
39
40
41
42
43
44
# File 'app/controllers/dm_cms/admin/cms_blogs_controller.rb', line 37

def update
  authorize! :manage_content, @blog
  if @blog.update_attributes(cms_blog_params)
    redirect_to admin_cms_blog_url(@blog), notice: 'Blog was successfully updated.'
  else
    render action: :edit
  end
end