Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function _grant_user_case_permissions($nid, $uid)
- {
- // Get the current nid level...
- $query = db_query("SELECT field_quiz_order_value AS current_level FROM {content_type_quiz} WHERE nid = %d ORDER BY vid DESC LIMIT 1", $nid);
- if ($query->num_rows > 0)
- {
- $row = db_fetch_array($query);
- $current_level = $row['current_level'];
- $query = db_query("SELECT field_quiz_order_value AS new_level FROM {content_type_quiz} WHERE field_quiz_order_value > %d ORDER BY field_quiz_order_value ASC, vid DESC", $current_level);
- if ($query->num_rows > 0)
- {
- $row = db_fetch_array($query);
- $next_level = $row['new_level'];
- // if there is a next level...
- if ($next_level > 0 && $next_level != $current_level)
- {
- // Get all the nid's associated with the next stepped level, grant permission.
- // Only give access to published quizes...
- $query = db_query("SELECT c.nid FROM {content_type_quiz} c
- INNER JOIN (SELECT MAX(vid) AS vid, nid FROM content_type_quiz a GROUP BY nid ) x ON x.vid = c.vid AND x.nid = c.nid
- INNER JOIN node n ON c.nid = n.nid
- WHERE field_quiz_order_value <= %d AND
- n.status = %d
- ORDER BY c.nid", $next_level, 1);
- while ($row = db_fetch_array($query))
- {
- // check exists
- $check = db_query("SELECT nid FROM {node_access} WHERE nid = %d AND gid = %d AND realm = '%s'", $row['nid'], $uid, 'nodeaccess_uid');
- if ($check->num_rows == 0)
- {
- // Grant access
- db_query("INSERT INTO {node_access} (nid,gid,realm,grant_view,grant_update,grant_delete) VALUES (%d,%d,'%s',%d,%d,%d)", $row['nid'], $uid, 'nodeaccess_uid', 1, 0, 0);
- }
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment