Module: Zena::Acts::Secure

Overview

SECURE ===============

Defined Under Namespace

Modules: SecureResult

Instance Method Summary collapse

Methods included from SecureResult

#construct_id_map, #secure_result

Instance Method Details

#secure_scope(table_name) ⇒ Object

Secure scope for read access



108
109
110
111
112
113
114
115
# File 'lib/zena/acts/secure.rb', line 108

def secure_scope(table_name)
  # site_id AND...
  "#{table_name}.site_id = #{visitor.site.id} AND ("+
  # READER if published
  "(#{table_name}.rgroup_id IN (#{visitor.group_ids.join(',')}) AND #{table_name}.publish_from <= #{Zena::Db::NOW} ) OR " +
  # OR writer
  "#{table_name}.wgroup_id IN (#{visitor.group_ids.join(',')}))"
end

#secure_write_scopeObject



117
118
119
120
121
# File 'lib/zena/acts/secure.rb', line 117

def secure_write_scope
  scope = {:nodes => {:site_id => visitor.site[:id]}}
  scope[:nodes] = {:wgroup_id => visitor.group_ids}
  scope
end

#visitor=(visitor) ⇒ Object

Set current visitor



103
104
105
# File 'lib/zena/acts/secure.rb', line 103

def visitor=(visitor)
  Thread.current[:visitor] = visitor
end