/[drupal]/contributions/modules/flag/includes/flag.services.inc
ViewVC logotype

Diff of /contributions/modules/flag/includes/flag.services.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1, Mon Nov 2 21:20:06 2009 UTC revision 1.1.2.1, Mon Nov 2 21:20:06 2009 UTC
# Line 0  Line 1 
1    <?php
2    // $Id$
3    
4    /**
5     * @file
6     * Services integration for the Flag module.
7     */
8    
9    /**
10     * Access callback to check a user has access to a flag operation via Services.
11     *
12     * @param $flag_name
13     *   The flag name.
14     * @param $content_id
15     *   The content ID that should be flagged.
16     * @param $uid
17     *   Optional. The user ID on behalf to flag the content.
18     * @param $action
19     *   Optional. If the method is "flag", then pass the desired action which
20     *   should be "flag" or "unflag".
21     * @return
22     *   TRUE if access is allowed.
23     */
24    function flag_service_flag_access($flag_name, $content_id, $uid = NULL, $action = NULL) {
25      $flag = flag_get_flag($flag_name);
26      if (!$flag) {
27        // Flag does not exist.
28        return FALSE;
29      }
30      if (empty($action)) {
31        return TRUE;
32      }
33      else {
34        // Check action is valid.
35        if (!in_array($action, array('flag', 'unflag'))) {
36          return FALSE;
37        }
38        if ($uid) {
39          $account = user_load($uid);
40        }
41        else {
42          global $user;
43          $account = $user;
44        }
45    
46        if (empty($account) || !$flag->access($content_id, $action, $account)) {
47          // User has no permission to use this flag.
48          return FALSE;
49        }
50        return TRUE;
51      }
52    }
53    
54    /**
55     * Service wrapper to flag a content.
56     *
57     * @param $flag_name
58     *   The flag name.
59     * @param $content_id
60     *   The content ID to check if it was flagged.
61     * @param $uid
62     *   The user ID to check if they flagged the content.
63     * @param $action
64     *   The action. Should be "flag" or "unflag".
65     * @return
66     *   TRUE if content was flagged.
67     */
68    function flag_service_flag($flag_name, $content_id, $uid = NULL, $action = 'flag', $skip_permission_check = FALSE) {
69      global $user;
70      $account = empty($uid) ? $user : user_load($uid);
71      $flag = flag_get_flag($flag_name);
72      $skip_permission_check = (boolean) $skip_permission_check;
73      return $flag->flag($action, $content_id, $account, $skip_permission_check);
74    }
75    
76    /**
77     * Service wrapper to check if a content is flagged by a user.
78     *
79     * @param $flag_name
80     *   The flag name.
81     * @param $content_id
82     *   The content ID to check if it was flagged.
83     * @param $uid
84     *   The user ID to check if they flagged the content.
85     * @return
86     *   TRUE if content was flagged.
87     */
88    function flag_service_is_flagged($flag_name, $content_id, $uid = NULL) {
89      $flag = flag_get_flag($flag_name);
90      return $flag->is_flagged($content_id, $uid);
91    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.1

  ViewVC Help
Powered by ViewVC 1.1.2