Guest User

Untitled

a guest
Oct 18th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. function _grant_user_case_permissions($nid, $uid)
  2. {
  3.  
  4. // Get the current nid level...
  5. $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);
  6.  
  7. if ($query->num_rows > 0)
  8. {
  9. $row = db_fetch_array($query);
  10. $current_level = $row['current_level'];
  11.  
  12. $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);
  13.  
  14. if ($query->num_rows > 0)
  15. {
  16. $row = db_fetch_array($query);
  17. $next_level = $row['new_level'];
  18.  
  19. // if there is a next level...
  20. if ($next_level > 0 && $next_level != $current_level)
  21. {
  22. // Get all the nid's associated with the next stepped level, grant permission.
  23. // Only give access to published quizes...
  24.  
  25. $query = db_query("SELECT c.nid FROM {content_type_quiz} c
  26. 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
  27. INNER JOIN node n ON c.nid = n.nid
  28. WHERE field_quiz_order_value <= %d AND
  29. n.status = %d
  30. ORDER BY c.nid", $next_level, 1);
  31. while ($row = db_fetch_array($query))
  32. {
  33. // check exists
  34. $check = db_query("SELECT nid FROM {node_access} WHERE nid = %d AND gid = %d AND realm = '%s'", $row['nid'], $uid, 'nodeaccess_uid');
  35. if ($check->num_rows == 0)
  36. {
  37. // Grant access
  38. 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);
  39. }
  40. }
  41.  
  42. }
  43. }
  44. }
  45. }
Add Comment
Please, Sign In to add comment