/** * check if user already exists * @param string $name name of user * @return bool indicates if user already exists */ function exists($name) { # create encoded_key_string $encoded_key_string = parent::_encode_key_string(USER_NAME_FIELD_NAME . "='" . $name . "'"); $record = parent::select_record($encoded_key_string); if (count($record) > 0) { $this->_log->debug("user already exists (name=" . $name . ")"); return TRUE; } else { if (strlen($this->get_error_message_str()) == 0) { $this->_log->debug("user does not exist (name=" . $name . ")"); return FALSE; } else { return FALSE; } } }
/** * add new ListTableDescription object to database * @param array $name_values_array values of new ListTableDescription * @return bool indicates if ListTableDescription has been added */ function insert($name_values_array) { $title = $name_values_array[LISTTABLEDESCRIPTION_TITLE_FIELD_NAME]; $this->_log->trace("inserting ListTableDescription (title=" . $title . ")"); $record = parent::select_record(LISTTABLEDESCRIPTION_TITLE_FIELD_NAME . "='" . $title . "'"); if (count($record) > 0) { $this->_handle_error("this is a duplicate list", "ERROR_DUPLICATE_LIST_NAME"); return FALSE; } # convert value if (array_key_exists(LISTTABLEDESCRIPTION_DEFINITION_FIELD_NAME, $name_values_array) == TRUE) { $name_values_array[LISTTABLEDESCRIPTION_DEFINITION_FIELD_NAME] = $this->_json->encode($name_values_array[LISTTABLEDESCRIPTION_DEFINITION_FIELD_NAME]); } if (parent::insert($name_values_array) == 0) { return FALSE; } if ($this->_user_list_permissions->insert_list_permissions_new_list($title) == FALSE) { # copy error strings from user_list_permissions $this->error_message_str = $this->_user_list_permissions->get_error_message_str(); $this->error_log_str = $this->_user_list_permissions->get_error_log_str(); $this->error_str = $this->_user_list_permissions->get_error_str(); return FALSE; } $this->_log->trace("inserted ListTableDescription (title=" . $title . ")"); return TRUE; }
/** * select exactly one record from database * @param $encoded_key_string string unique identifier of requested ListTableItem * @return array array containing exactly one ListTableItem (which is an array) */ function select_record($encoded_key_string) { $this->_log->trace("selecting record form ListTable (encoded_key_string=" . $encoded_key_string . ")"); # call parent select_record() $record = parent::select_record($encoded_key_string, $this->db_field_names); if (count($record) != 0) { # get notes foreach ($this->db_field_names as $db_field_name) { if ($this->fields[$db_field_name][1] == FIELD_TYPE_DEFINITION_NOTES_FIELD) { if ($record[$db_field_name] > 0) { $result = $this->_list_table_note->select($record[DB_ID_FIELD_NAME], $db_field_name); if (count($result) == 0 || count($result) != $record[$db_field_name]) { $this->_log->warn("unexpected number of notes found (expected=" . $record[$db_field_name] . ", found=" . count($result) . ")"); $record[$db_field_name] = $result; } else { $record[$db_field_name] = $result; } } else { $record[$db_field_name] = array(); } } if ($this->fields[$db_field_name][1] == FIELD_TYPE_DEFINITION_ATTACHMENTS) { if ($record[$db_field_name] > 0) { $result = $this->_list_table_attachment->select($record[DB_ID_FIELD_NAME]); if (count($result) == 0 || count($result) != $record[$db_field_name]) { $this->_log->warn("unexpected number of attachments found (expected=" . $record[$db_field_name] . ", found=" . count($result) . ")"); $record[$db_field_name] = $result; } else { $record[$db_field_name] = $result; } } else { $record[$db_field_name] = array(); } } } $this->_log->trace("selected record form ListTable record"); return $record; } else { return $record; } }