|
231 | 231 | <span class="k">end</span></code></pre></figure>
|
232 | 232 |
|
233 | 233 | <p>When guarding the <code class="highlighter-rouge">:readable</code> flag, the method can optionally accept the
|
234 |
| -model instance and the of the attribute being serialized as arguments:</p> |
| 234 | +model instance and the name of the attribute being serialized as arguments:</p> |
235 | 235 |
|
236 | 236 | <figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="n">attribute</span> <span class="ss">:name</span><span class="p">,</span> <span class="ss">:string</span><span class="p">,</span> <span class="ss">readable: :allowed?</span>
|
237 | 237 | <span class="n">attribute</span> <span class="ss">:age</span><span class="p">,</span> <span class="ss">:integer</span><span class="p">,</span> <span class="ss">readable: :attribute_allowed?</span>
|
@@ -261,6 +261,16 @@ <h4>
|
261 | 261 | <span class="nb">self</span><span class="p">.</span><span class="nf">attributes_sortable_by_default</span> <span class="o">=</span> <span class="kp">false</span> <span class="c1"># default true</span>
|
262 | 262 | <span class="nb">self</span><span class="p">.</span><span class="nf">attributes_schema_by_default</span> <span class="o">=</span> <span class="kp">false</span> <span class="c1"># default true</span></code></pre></figure>
|
263 | 263 |
|
| 264 | + <p>As for resource defined guards, you can pass a symbol to guard the |
| 265 | +behavior globally. This can be used to globally delegate access control to a |
| 266 | +dedicated system.</p> |
| 267 | + |
| 268 | + <figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="nb">self</span><span class="p">.</span><span class="nf">attributes_readable_by_default</span> <span class="o">=</span> <span class="ss">:attribute_readable?</span> <span class="c1"># default true</span> |
| 269 | + |
| 270 | +<span class="k">def</span> <span class="nf">attribute_readable?</span><span class="p">(</span><span class="n">model_instance</span><span class="p">,</span> <span class="n">attribute_name</span><span class="p">)</span> |
| 271 | + <span class="no">PolicyChecker</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">model_instance</span><span class="p">).</span><span class="nf">attribute_readable?</span><span class="p">(</span><span class="n">attribute_name</span><span class="p">)</span> |
| 272 | +<span class="k">end</span></code></pre></figure> |
| 273 | + |
264 | 274 | <a class="anchor" id="customizing-display" />
|
265 | 275 | <a class="header" href="#customizing-display">
|
266 | 276 | <h4>
|
|
0 commit comments