forked from saurabh/orbit4-5
43 lines
1.2 KiB
Ruby
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 |