From 94fc2bd1a9e804074167345880d6d02ff573a3df Mon Sep 17 00:00:00 2001 From: Logan Fick Date: Sat, 11 Nov 2017 20:23:10 -0500 Subject: Made having a confirmed email required to manage forums. --- app/controllers/forums_controller.rb | 6 +++--- app/views/forums/edit.html.erb | 24 +++++++++++++++++------- app/views/forums/new.html.erb | 22 ++++++++++++++++------ 3 files changed, 36 insertions(+), 16 deletions(-) diff --git a/app/controllers/forums_controller.rb b/app/controllers/forums_controller.rb index 206f01f..8111cbb 100644 --- a/app/controllers/forums_controller.rb +++ b/app/controllers/forums_controller.rb @@ -34,7 +34,7 @@ class ForumsController < ApplicationController end def update - if admin? + if admin? && current_user.confirmed? if @forum.update_attributes(forum_params) flash[:notice] = "Forum updated" redirect_to @forum @@ -48,7 +48,7 @@ class ForumsController < ApplicationController end def create - if admin? + if admin? && current_user.confirmed? @forum = Forum.new(forum_params([:forumgroup_id])) if @forum.save flash[:notice] = "Forum created." @@ -64,7 +64,7 @@ class ForumsController < ApplicationController end def destroy - if admin? + if admin? && current_user.confirmed? if @forum.destroy flash[:notice] = "Forum deleted." else diff --git a/app/views/forums/edit.html.erb b/app/views/forums/edit.html.erb index 571b3b7..8b01b45 100644 --- a/app/views/forums/edit.html.erb +++ b/app/views/forums/edit.html.erb @@ -1,5 +1,11 @@ <% title "Edit Forum: #{@forum.name}" %> +<% + def can_edit? + admin? && current_user.confirmed? + end +%> + <%= link_to "(Edit) #{@forum.group.name}", edit_forumgroup_path(@forum.group) %> → <%= @forum.name %>

Edit Forum

<% role_selection = Role.all_from_to(:normal, :admin).collect{|p|[p.name, p.id]} %> @@ -7,26 +13,30 @@ - + - + - + - + - +
<%= f.label :name %><%= f.text_field :name, placeholder: "Name" %><%= f.text_field :name, placeholder: "Name", disabled: !can_edit? %>
<%= f.label :position %><%= f.number_field :position, placeholder: "Position" %><%= f.number_field :position, placeholder: "Position", disabled: !can_edit? %>
<%= f.label :role_read_id, "Min. read role" %><%= f.select :role_read_id, role_selection, include_blank: "None" %><%= f.select :role_read_id, role_selection, { include_blank: "None" }, { disabled: !can_edit? } %>
<%= f.label :role_write_id, "Min. write role" %><%= f.select :role_write_id, role_selection, include_blank: false %><%= f.select :role_write_id, role_selection, { include_blank: false }, { disabled: !can_edit? } %>
<%= f.label :necro_length, "Necropost warning delay (in days)" %><%= f.number_field :necro_length, placeholder: "Warning Delay (leave blank for no warning)" %><%= f.number_field :necro_length, placeholder: "Warning Delay (leave blank for no warning)", disabled: !can_edit? %>
-

<%= f.submit "Update forum", class: "btn blue left" %>

+

<%= f.submit "Update forum", class: "btn blue left", disabled: !can_edit? %>

<% end %> -

<%= button_to "Delete forum", @forum, method: "delete", data: {confirm: "Delete forum forever?\nThreads won't be accessible!"}, class: "btn red right" %>

+

<%= button_to "Delete forum", @forum, method: "delete", data: {confirm: "Delete forum forever?\nThreads won't be accessible!"}, class: "btn red right", disabled: !can_edit? %>

+ +<% if !current_user.confirmed? %> + You must confirm your email before you can edit forums. +<% end %> diff --git a/app/views/forums/new.html.erb b/app/views/forums/new.html.erb index 836a9b2..e9758ec 100644 --- a/app/views/forums/new.html.erb +++ b/app/views/forums/new.html.erb @@ -1,5 +1,11 @@ <% title "New Forum: #{@forum.group.name}" %> +<% + def can_create? + admin? && current_user.confirmed? + end +%> + <%= link_to @forum.group, forumgroup_path(@forum.group) %> → New forum

New Forum

<% role_selection = Role.all_from_to(:normal, :admin).collect{|p|[p.name, p.id]} %> @@ -7,26 +13,30 @@ - + - + - + - + - +
<%= f.label :name %><%= f.text_field :name, placeholder: "Name" %><%= f.text_field :name, placeholder: "Name", disabled: !can_create? %>
<%= f.label :position %><%= f.number_field :position, placeholder: "Position" %><%= f.number_field :position, placeholder: "Position", disabled: !can_create? %>
<%= f.label :role_read_id, "Min. read role" %><%= f.select :role_read_id, role_selection, include_blank: "None" %><%= f.select :role_read_id, role_selection, { include_blank: "None"}, { disabled: !can_create? } %>
<%= f.label :role_write_id, "Min. write role" %><%= f.select :role_write_id, role_selection, include_blank: false %><%= f.select :role_write_id, role_selection, { include_blank: false }, { disabled: !can_create? } %>
<%= f.label :necro_length, "Necropost warning delay (in days)" %><%= f.number_field :necro_length, placeholder: "Warning Delay (leave blank for no warning)" %><%= f.number_field :necro_length, placeholder: "Warning Delay (leave blank for no warning)", disabled: !can_create? %>
<%= f.hidden_field :forumgroup_id %> -

<%= f.submit "Create forum", class: "btn blue left" %>

+

<%= f.submit "Create forum", class: "btn blue left", disabled: !can_create? %>

+ + <% if !current_user.confirmed? %> + You must confirm your email before you can create new forums. + <% end %> <% end %> -- cgit v1.2.3