Example #1
0
 protected function check_ingot_id()
 {
     if (!isset($this->cookie['ingot_id'])) {
         $ingot_id = session::find_ingot_id(get_current_user_id(), ingot_get_ip());
         $this->cookie['ingot_id'] = $ingot_id;
     }
 }
Example #2
0
 /**
  * Set class properties
  *
  * @since 0.3.0
  *
  * @access private
  *
  * @param $id
  */
 private function set_up_session($id)
 {
     if (is_null($id) || !\ingot\testing\crud\session::valid(\ingot\testing\crud\session::read($id))) {
         $this->ID = \ingot\testing\crud\session::create(['uID' => get_current_user_id(), 'IP' => ingot_get_ip()], true);
     } else {
         $this->ID = $id;
     }
     $this->session = \ingot\testing\crud\session::read($this->ID);
     $this->ID = $this->session['ID'];
     $this->ingot_id = $this->session['ingot_ID'];
 }
Example #3
0
 /**
  * Validate item config
  *
  * @since 0.4.0
  *
  * @access protected
  *
  * @param array $data Item config
  *
  * @return \WP_Error|array Item config array if valid, WP_Error if not.
  */
 protected static function validate_config($data)
 {
     $required = static::required();
     foreach ($required as $key) {
         if (!isset($data[$key])) {
             return new \WP_Error('ingot-invalid-config', __(sprintf('Groups require the field %s', $key), 'ingot'), $data);
         }
     }
     if (!isset($data['IP'])) {
         $data['IP'] = ingot_get_ip();
     }
     if (isset($data['UTM']) && $data['UTM']) {
         $data['UTM'] = helpers::sanitize($data['UTM']);
     }
     $data['time'] = self::date_validation($data['time']);
     return $data;
 }
Example #4
0
 /**
  * Test that optional fields are filled in.
  *
  * @since 0.0.7
  *
  * @group crud
  * @group tracking_crud
  *
  * @covers \ingot\testing\crud\tracking::create()
  * @covers \ingot\testing\crud\crud::fill_in()
  * @covers \ingot\testing\crud\crud::validate_config()
  */
 public function testCreateFillIn()
 {
     $params = array('test_ID' => 42);
     $created = \ingot\testing\crud\tracking::create($params);
     $this->assertTrue(is_numeric($created));
     $tracking = \ingot\testing\crud\tracking::read($created);
     foreach (\ingot\testing\crud\tracking::get_required_fields() as $field) {
         $this->assertArrayHasKey($field, $tracking);
     }
     foreach (\ingot\testing\crud\tracking::get_needed_fields() as $field) {
         $this->assertArrayHasKey($field, $tracking);
     }
     $this->assertEquals('127.0.0.1', ingot_get_ip());
 }
Example #5
0
 /**
  * Find ingot_ID value to tie sessions to same user/IP
  *
  * @since 0.3.0
  *
  * @param bool|false $uID
  * @param bool|false $ip
  *
  * @return int Returns ingot_ID, possibly a fresh new one, maybe a matched one
  */
 public static function find_ingot_id($uID = false, $ip = false)
 {
     if (!$uID && 0 != get_current_user_id()) {
         $uID = get_current_user_id();
         $id = self::lookup_by_uID($uID);
     } else {
         if (!$ip) {
             $ip = ingot_get_ip();
         }
         $id = self::lookup_by_IP($ip);
     }
     if (!$id) {
         $last_assigned_key = '_ingot_session_ID_last_assigned';
         $last_assigned = get_option($last_assigned_key, 0);
         $id = $last_assigned + 1;
         update_option($last_assigned_key, $id);
     }
     return (int) $id;
 }