commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / modules / file / file.api.php
1 <?php
2
3 /**
4 * @file
5 * Hooks for file module.
6 */
7
8 /**
9 * Control download access to files.
10 *
11 * The hook is typically implemented to limit access based on the entity the
12 * file is referenced, e.g., only users with access to a node should be allowed
13 * to download files attached to that node.
14 *
15 * @param array $file_item
16 * The array of information about the file to check access for.
17 * @param $entity_type
18 * The type of $entity; for example, 'node' or 'user'.
19 * @param $entity
20 * The $entity to which $file is referenced.
21 *
22 * @return
23 * TRUE is access should be allowed by this entity or FALSE if denied. Note
24 * that denial may be overridden by another entity controller, making this
25 * grant permissive rather than restrictive.
26 *
27 * @see hook_field_access().
28 */
29 function hook_file_download_access($file_item, $entity_type, $entity) {
30 if ($entity_type == 'node') {
31 return node_access('view', $entity);
32 }
33 }
34
35 /**
36 * Alter the access rules applied to a file download.
37 *
38 * Entities that implement file management set the access rules for their
39 * individual files. Module may use this hook to create custom access rules
40 * for file downloads.
41 *
42 * @see hook_file_download_access().
43 *
44 * @param $grants
45 * An array of grants gathered by hook_file_download_access(). The array is
46 * keyed by the module that defines the entity type's access control; the
47 * values are Boolean grant responses for each module.
48 * @param array $file_item
49 * The array of information about the file to alter access for.
50 * @param $entity_type
51 * The type of $entity; for example, 'node' or 'user'.
52 * @param $entity
53 * The $entity to which $file is referenced.
54 */
55 function hook_file_download_access_alter(&$grants, $file_item, $entity_type, $entity) {
56 // For our example module, we always enforce the rules set by node module.
57 if (isset($grants['node'])) {
58 $grants = array('node' => $grants['node']);
59 }
60 }