Sha256: 0f874dd56e6c12c9da63907cb6e3dae359b0a96b6b7c0afe9c1b69faad9972c8
Contents?: true
Size: 1.09 KB
Versions: 9
Compression:
Stored size: 1.09 KB
Contents
module Thredded class TopicUserPermissions attr_reader :topic, :user, :user_details, :messageboard def initialize(topic, user, user_details) @topic = topic @messageboard = topic.messageboard @user = user @user_details = user_details || UserDetail.new end def creatable? member? || messageboard_restrictions_allow? end def manageable? superadmin? || started_by_user? || administrates_messageboard? end def readable? MessageboardUserPermissions.new(messageboard, user).readable? end private def messageboard_restrictions_allow? user.valid? && ( messageboard.public? || messageboard.restricted_to_logged_in? || messageboard.posting_for_logged_in? ) end def member? user.valid? && messageboard.has_member?(user) end def superadmin? user_details.superadmin? end def started_by_user? topic.user_id == user.id end def administrates_messageboard? user.valid? && messageboard.member_is_a?(user, 'admin') end end end
Version data entries
9 entries across 9 versions & 1 rubygems