orbit4-5/app/controllers/orbit_group_controller.rb

43 lines
1.2 KiB
Ruby

class OrbitGroupController < ApplicationController
layout "member"
before_action :authenticate_user, :get_group, :set_access_rights
def get_group
case params[:action]
when "show","edit"
uid = params[:id].split("-").last
@group = Group.find_by(:uid => uid)
when "newpost", "createpost", "members"
uid = params[:group_id].split("-").last
@group = Group.find_by(:uid => uid)
when "showpost", "editpost"
uid = params[:id].split("-").last
@post = GroupPost.find_by(:uid => uid)
@group = @post.group
end
end
def set_access_rights
@access_right_level = "none"
read_or_write = @group.permission rescue "read"
case params[:action]
when "show", "showpost", "newpost", "edit", "members", "editpost"
is_member = @group.users.include?(current_user)
if @group.admins.include?(current_user.id.to_s)
@access_right_level = "admin"
elsif is_member
if read_or_write == "write"
@access_right_level = "write"
elsif read_or_write == "read"
@access_right_level = "read"
end
elsif !is_member && @group.privacy == "open"
@access_right_level = "read"
end
end
end
def render_401
render "public/401"
end
end