Skip to content

Instantly share code, notes, and snippets.

module SitesHelper
def postable?
[email protected] || (@site.locked && session[@site.name.to_sym] == "session-unlocked")
end
def private?
@site.locked && session[@site.name.to_sym] != "session-unlocked"
end
end
module SitesHelper
def private?
@site.locked && session[@site.name.to_sym] != "session-unlocked"
end
end
def find_site
@slug = params[:id].downcase
@site = Site.find_by(name: @slug)
if @site.present?
expired?
end
end
def home
@slug = ('a'..'z').to_a.shuffle[0,8].join
redirect_to main_path(@slug)
end
@eri-b
eri-b / expired.rb
Last active September 13, 2019 23:03
class SitesController < ApplicationController
...
private
def find_site
@slug = params[:id].downcase
@site = Site.find_by(name: @slug)
if @site.present?
@eri-b
eri-b / posts.rb
Last active September 17, 2019 23:17
class PostsController < ApplicationController
before_action :editable?, only: [:create]
def create
@site = Site.find_by(name: params[:post][:site])
@post = @site.posts.build(post_params)
if @post.save
redirect_to main_path(@post.site.name)
# sites_controller.rb
def unlocked?
if private?
redirect_to main_path(@site.name), notice: 'Site is locked.'
end
end
@eri-b
eri-b / sessions.rb
Last active September 13, 2019 22:50
class SessionsController < ApplicationController
def create
site = Site.find_by(name: params[:session][:site])
if site && site.authenticate(params[:session][:password])
session[site.name.to_sym] = "session-unlocked"
redirect_to main_path(site.name), notice: 'Logged in. Free to add/delete posts'
else
flash.now[:danger] = 'Invalid password'
redirect_to main_path(site.name), notice: 'Incorrect password'
<%= form_for(:session, url: unlock_path) do |f| %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.hidden_field :site, value: @site.name %>
<%= f.submit "Unlock" %>
<% end %>
<%= form_for @site, url: site_pass_path(@site.name), method: :patch do |f| %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.submit "Add password" %>
<% end %>