Token

Extends\Dynamic

Class Token

In this implementation class definitions are generated dynamically. This class and its descendants should be declared abstract!

package

Default

Methods

Dynamic constructor.

__construct(string $scenario = 'insert')
inherited

Arguments

$scenario

string

Creates a random token string without special characters

_generateRandomToken(integer $iTokenLength): string

Arguments

$iTokenLength

integer

Response

string

attributeLabels

attributeLabels()
inheritdoc

beforeDelete

beforeDelete()
inheritdoc

Delete related SurveyLink if it's deleted

Lists the behaviors of this model

behaviors(): array
inherited

Below is a list of all behaviors we register:

see \PluginEventBehavior\CTimestampBehavior

Response

array

create

create(integer $id,string $scenario = 'insert'): mixed
inheritedstatic

Arguments

$id

integer

$scenario

string

Response

mixed

createTable

createTable(integer $surveyId,array $extraFields = array()): \CDbTableSchema
static

Arguments

$surveyId

integer

$extraFields

array

Response

\CDbTableSchema

Decrypt values from database

decrypt( $value = '')
inherited

Arguments

$value

Encrypt/decrypt values

decryptEncryptAttributes( $action = 'decrypt')
inherited

Arguments

$action

Decrypt single value

decryptSingle(string $value = '')
inheritedstatic

Arguments

$value

string

String value which needs to be decrypted

deleteAllByAttributes

deleteAllByAttributes(array $attributes,string $condition = '',array $params = array()): integer
inherited
todo

This should also be moved to the behavior at some point. This method overrides the parent in order to raise PluginEvents for Bulk delete operations.

Filter Criteria are wrapped into a CDBCriteria instance so we have a single instance responsible for holding the filter criteria to be passed to the PluginEvent, this also enables us to pass the fully configured CDBCriteria instead of the original Parameters.

See {@link find()} for detailed explanation about $condition and $params.

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active records should match. An attribute value can be an array which will be used to generate an IN condition.

$condition

string

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

integer

number of rows affected by the execution.

dispatchPluginModelEvent

dispatchPluginModelEvent(string $sEventName,\CDbCriteria $criteria = null,array $eventParams = []): \PluginEvent
inherited

Arguments

$sEventName

string

$criteria

\CDbCriteria

$eventParams

array

Response

\PluginEvent

Encrypt values

encrypt()
inherited

Attribute values are encrypted ( if needed )to be used for searching purposes

encryptAttributeValues(array $attributes = null, $bEncryptedOnly = false, $bReplaceValues = true): array
inherited

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active records should match. An attribute value can be an array which will be used to generate an IN condition.

$bEncryptedOnly

$bReplaceValues

Response

array

attributes array with encrypted atrribute values is returned

Encrypt values before saving to the database

encryptSave( $runValidation = false)
inherited

Arguments

$runValidation

Enrypt single value

encryptSingle(string $value = '')
inheritedstatic

Arguments

$value

string

String value which needs to be encrypted

Finds all active records satisfying the specified condition but returns them as array

findAllAsArray(mixed $condition = '',array $params = array()): array
inherited

See \find() for detailed explanation about $condition and $params.

Arguments

$condition

mixed

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

array

list of active records satisfying the specified condition. An empty array is returned if none is found.

Overriding of Yii's findAllByAttributes method to provide encrypted attribute value search

findAllByAttributes(array $attributes,mixed $condition = '',array $params = array()): array<mixed,static>
inherited

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active records should match. An attribute value can be an array which will be used to generate an IN condition.

$condition

mixed

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

array<mixed,static>

the records found. An empty array is returned if none is found.

Overriding of Yii's findByAttributes method to provide encrypted attribute value search

findByAttributes(array $attributes,mixed $condition = '',array $params = array()): static|null
inherited

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active records should match. An attribute value can be an array which will be used to generate an IN condition.

$condition

mixed

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

static|null

the record found. Null if none is found.

findByToken

findByToken(string $token): \Token

Arguments

$token

string

Response

\Token

Generates a token for this object.

generateToken( $iTokenLength = null)
Throws
\CHttpException

Arguments

$iTokenLength

Generates a token for all token objects in this survey.

generateTokens(): array<mixed,integer>

Syntax: Token::model(12345)->generateTokens();

Throws
\Exception

Response

array<mixed,integer>

getAllEncryptedAttributes

getAllEncryptedAttributes(integer $iSurveyId,string $sClassName): array
inherited

Arguments

$iSurveyId

integer

$sClassName

string

Response

array

TODO: Should be split into seperate functions in the appropiate model or helper class TODO: Make an interface for records that support encryption.

getDefaultEncryptionOptions

getDefaultEncryptionOptions()
static

getDynamicId

getDynamicId()
inherited

getEncryptedAttributes

getEncryptedAttributes()
static

Return the max value for a field

getMaxId(string $field = null,boolean $forceRefresh = false): false|integer
inherited

This is a convenience method, that uses the primary key of the model to retrieve the highest value.

Throws
\Exception

Arguments

$field

string

The field that contains the Id, when null primary key is used if it is a single field

$forceRefresh

boolean

Don't use value from static cache but always requery the database

Response

false|integer

Return the min value for a field

getMinId(string $field = null,boolean $forceRefresh = false): false|integer
inherited

This is a convenience method, that uses the primary key of the model to retrieve the highest value.

Throws
\Exception

Arguments

$field

string

The field that contains the Id, when null primary key is used if it is a single field

$forceRefresh

boolean

Don't use value from static cache but always requery the database

Response

false|integer

Get current surveyId for other model/function

getSurveyId(): integer

Response

integer

Get survey token length from survey.

getSurveyTokenLength()

Use default if not possible.

Set defaults

init()
inheritdoc

model

model( $className = null): \Dynamic
inheritedstatic
inheritdoc

Arguments

$className

Response

\Dynamic

primaryKey

primaryKey()
inheritdoc

Modified version that default to do the same as the original, but allows via a third parameter to retrieve the result as array instead of active records. This solves a joining problem. Usage via findAllAsArray method

query(\CDbCriteria $criteria,boolean $all = false,boolean $asAR = true): mixed
inherited

Performs the actual DB query and populates the AR objects with the query result. This method is mainly internally used by other AR query methods.

since 1.1.7

Arguments

$criteria

\CDbCriteria

the query criteria

$all

boolean

whether to return all data

$asAR

boolean

Response

mixed

the AR objects populated with the query result

relations

relations()

rules

rules()
inheritdoc

Sanitize string for any attribute

sanitizeAttribute(string $attribute): string
static

Arguments

$attribute

string

to sanitize

Response

string

sanitized attribute

Sanitize token show to the user (replace sanitize_helper sanitize_token)

sanitizeToken(string $token): string
static

Arguments

$token

string

to sanitize

Response

string

sanitized token

scopes

scopes()
inheritdoc

Function to show encryption symbol in gridview attribute header if value ois encrypted

setEncryptedAttributeLabel(integer $surveyId,string $className,string $attributeName): string
inherited
Throws
\CException

Arguments

$surveyId

integer

$className

string

$attributeName

string

Response

string

summary

summary(): \CDbDataReader|mixed

Response

\CDbDataReader|mixed

tableName

tableName()
inheritdoc

Constants

MAX_LENGTH

MAX_LENGTH
var

Maximum token length

DEFAULT_LENGTH

DEFAULT_LENGTH
var

Default token length

Properties

Prefixed with _ to not collide with column names.

dynamicId :integer
inherited
var

The dynamic part of the class name.

Type(s)

integer

bEncryption

bEncryption :
inherited

Type(s)

tid

tid :integer

Token ID

Type(s)

integer

participant_id

participant_id :string

Participant ID

Type(s)

string

firstname

firstname :string

Participant's first name

Type(s)

string

lastname

lastname :string

Participant's last name

Type(s)

string

email

email :string

Participant's e-mail address

Type(s)

string

emailstatus

emailstatus :string

Participant's e-mail address status: OK/bounced/OptOut

Type(s)

string

token

token :string

Participant's token

Type(s)

string

language

language :string

Participant's language eg: en

Type(s)

string

blacklisted

blacklisted :string

Whether participant is blacklisted: (Y/N)

Type(s)

string

sent

sent :string

Type(s)

string

remindersent

remindersent :string

Type(s)

string

remindercount

remindercount :integer

Type(s)

integer

completed

completed :string

Participant completed status (N:Not completed; Q:Locked with quota; 'YYYY-MM-DD hh:mm': date of completion)

Type(s)

string

usesleft

usesleft :integer

How many uses left to fill questionnaire for this participant

Type(s)

integer

validfrom

validfrom :string

Type(s)

string

validuntil

validuntil :string

Type(s)

string

mpid

mpid :integer

//TODO Describe me!

Type(s)

integer

survey

survey :\Survey

Type(s)

\Survey

responses

responses :array<mixed,\Response>

Type(s)

array<mixed,\Response>

tableSchema

tableSchema :\CDbTableSchema

Type(s)

\CDbTableSchema