class OrbitGroupController < ApplicationController layout "member" before_action :authenticate_user, :get_group, :set_access_rights def get_group case params[:action] when "show" uid = params[:id].split("-").last @group = Group.find_by(:uid => uid) when "newpost", "createpost" uid = params[:group_id].split("-").last @group = Group.find_by(:uid => uid) when "showpost" 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 = "write" case params[:action] when "show", "showpost", "newpost" 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