Exemplo n.º 1
0
 /**
  * Class constructor.
  *
  * @param ResourceLink $resourceLink  Resource_Link object
  * @param string       $id      Value of share key (optional, default is null)
  */
 public function __construct($resourceLink, $id = null)
 {
     $this->initialize();
     $this->dataConnector = $resourceLink->getDataConnector();
     $this->resourceLinkId = $resourceLink->getRecordId();
     $this->id = $id;
     if (!empty($id)) {
         $this->load();
     }
 }
Exemplo n.º 2
0
 /**
  * Get array of user objects.
  *
  * Obtain an array of User objects for users with a result sourcedId.  The array may include users from other
  * resource links which are sharing this resource link.  It may also be optionally indexed by the user ID of a specified scope.
  *
  * @param ResourceLink $resourceLink      Resource link object
  * @param boolean     $localOnly True if only users within the resource link are to be returned (excluding users sharing this resource link)
  * @param int         $idScope     Scope value to use for user IDs
  *
  * @return array Array of User objects
  */
 public function getUserResultSourcedIDsResourceLink($resourceLink, $localOnly, $idScope)
 {
     $id = $resourceLink->getRecordId();
     $users = array();
     if ($localOnly) {
         $sql = 'SELECT u.user_pk, u.lti_result_sourcedid, u.lti_user_id, u.created, u.updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::USER_RESULT_TABLE_NAME . ' AS u ' . "INNER JOIN {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' AS rl ' . 'ON u.resource_link_pk = rl.resource_link_pk ' . 'WHERE (rl.resource_link_pk = :id) AND (rl.primary_resource_link_pk IS NULL)';
         $query = $this->db->prepare($sql);
         $query->bindValue('id', $id, PDO::PARAM_INT);
     } else {
         $sql = 'SELECT u.user_pk, u.lti_result_sourcedid, u.lti_user_id, u.created, u.updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::USER_RESULT_TABLE_NAME . ' AS u ' . "INNER JOIN {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' AS rl ' . 'ON u.resource_link_pk = rl.resource_link_pk ' . 'WHERE ((rl.resource_link_pk = :id) AND (rl.primary_resource_link_pk IS NULL)) OR ' . '((rl.primary_resource_link_pk = :pid) AND (share_approved = 1))';
         $query = $this->db->prepare($sql);
         $query->bindValue('id', $id, PDO::PARAM_INT);
         $query->bindValue('pid', $id, PDO::PARAM_INT);
     }
     if ($query->execute()) {
         while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
             $row = array_change_key_case($row);
             $user = ToolProvider\User::fromRecordId($row['user_pk'], $resourceLink->getDataConnector());
             if (is_null($idScope)) {
                 $users[] = $user;
             } else {
                 $users[$user->getId($idScope)] = $user;
             }
         }
     }
     return $users;
 }