UserSwitch
API reference › Debug › models › UserSwitch
Backs the user-impersonation workflow by swapping the active session identity to another user.
Preserves the original identity in the session (main_user) so reset() can restore it once the impersonator
is done. Every accessor resolves the user component lazily through getUser() so unit tests can inject a
pre-built User instance into $userComponent.
Properties
Section titled “Properties”| Property | Type | Description | Defined by |
|---|---|---|---|
$activeValidators read-only | yii\[] | The validators applicable to the current $scenario. | yii\ |
$attributes | array<string, | Attribute values (name => value). | yii\ |
$behaviors read-only | array<yii\<static>> | List of behaviors attached to this component. | yii\ |
$errors read-only | array<string, | Errors for all attributes. | yii\ |
$firstErrors read-only | array<string, | The first errors. | yii\ |
$iterator read-only | ArrayIterator<string, | An iterator for traversing the items in the list. | yii\ |
$mainUser read-only | yii\ | User component carrying the original identity. | UserSwitch |
$scenario | string | The scenario that this model is in. | yii\ |
$user | yii\ | Bound user component. | UserSwitch |
$userByIdentity write-only | yii\ | Identity to impersonate. | UserSwitch |
$userComponent | string|yii\ | Component ID of the user component, or a User instance to operate on directly. Default: 'user'. | UserSwitch |
$validators read-only | ArrayObject<int, yii\>|yii\[] | All the validators declared in the model. | yii\ |
Methods
Section titled “Methods”| Method | Description | Defined by |
|---|---|---|
__construct() | Constructor. | yii\ |
__call() | Calls the named method which is not a class method. | yii\ |
__clone() | This method is called after the object is created by cloning an existing one. | yii\ |
__get() | Returns the value of a component property. | yii\ |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\ |
__set() | Sets the value of a component property. | yii\ |
__unset() | Sets a component property to be null. | yii\ |
activeAttributes() | Returns the attribute names that are subject to validation in the current scenario. | yii\ |
addError() | Adds a new error to the specified attribute. | yii\ |
addErrors() | Adds a list of errors. | yii\ |
afterValidate() | This method is invoked after validation ends. | yii\ |
attachBehavior() | Attaches a behavior to this component. | yii\ |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\ |
attributeHints() | Returns the attribute hints. | yii\ |
attributeLabels() | Returns the labels shown for the switch form attributes. | UserSwitch |
attributes() | Returns the list of attribute names. | yii\ |
beforeValidate() | This method is invoked before validation starts. | yii\ |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\ |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\ |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\ |
className() static | Returns the fully qualified name of this class. | yii\ |
clearErrors() | Removes errors for all attributes or a single attribute. | yii\ |
createValidators() | Creates validator objects based on the validation rules specified in rules(). | yii\ |
detachBehavior() | Detaches a behavior from the component. | yii\ |
detachBehaviors() | Detaches all behaviors from the component. | yii\ |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\ |
extraFields() | Returns the list of fields that can be expanded further and returned by toArray(). | yii\ |
fields() | Returns the list of fields that should be returned by default by toArray() when no specific fields are specified. | yii\ |
formName() | Returns the form name that this model class should use. | yii\ |
generateAttributeLabel() | Generates a user friendly attribute label based on the give attribute name. | yii\ |
getActiveValidators() | Returns the validators applicable to the current $scenario. | yii\ |
getAttributeHint() | Returns the text hint for the specified attribute. | yii\ |
getAttributeLabel() | Returns the text label for the specified attribute. | yii\ |
getAttributes() | Returns attribute values. | yii\ |
getBehavior() | Returns the named behavior object. | yii\ |
getBehaviors() | Returns all behaviors attached to this component. | yii\ |
getErrors() | Returns the errors for all attributes or a single attribute. | yii\ |
getErrorSummary() | Returns the errors for all attributes as a one-dimensional array. | yii\ |
getFirstError() | Returns the first error of the specified attribute. | yii\ |
getFirstErrors() | Returns the first error of every attribute in the model. | yii\ |
getIterator() | Returns an iterator for traversing the attributes in the model. | yii\ |
getMainUser() | Returns the main user; the original identity captured on the first switch. | UserSwitch |
getScenario() | Returns the scenario that this model is used in. | yii\ |
getUser() | Returns the user component bound to this switch model, resolving it lazily on first call. | UserSwitch |
getValidators() | Returns all the validators declared in rules(). | yii\ |
hasErrors() | Returns a value indicating whether there is any validation error. | yii\ |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\ |
hasMethod() | Returns a value indicating whether a method is defined. | yii\ |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\ |
init() | Initializes the object. | yii\ |
instance() static | Returns static class instance, which can be used to obtain meta information. | yii\ |
isAttributeActive() | Returns a value indicating whether the attribute is active in the current scenario. | yii\ |
isAttributeRequired() | Returns a value indicating whether the attribute is required. | yii\ |
isAttributeSafe() | Returns a value indicating whether the attribute is safe for massive assignments. | yii\ |
isMainUser() | Returns whether the current identity is the main user (or a guest). | UserSwitch |
load() | Populates the model with input data. | yii\ |
loadMultiple() static | Populates a set of models with the data from end user. | yii\ |
off() | Detaches an existing event handler from this component. | yii\ |
offsetExists() | Returns whether there is an element at the specified offset. | yii\ |
offsetGet() | Returns the element at the specified offset. | yii\ |
offsetSet() | Sets the element at the specified offset. | yii\ |
offsetUnset() | Sets the element value at the specified offset to null. | yii\ |
on() | Attaches an event handler to an event. | yii\ |
onUnsafeAttribute() | This method is invoked when an unsafe attribute is being massively assigned. | yii\ |
reset() | Restores the session to the main user captured before the first switch. | UserSwitch |
rules() | Declares the validation rules applied to the switch form. | UserSwitch |
safeAttributes() | Returns the attribute names that are safe to be massively assigned in the current scenario. | yii\ |
scenarios() | Returns a list of scenarios and the corresponding active attributes. | yii\ |
setAttributes() | Sets the attribute values in a massive way. | yii\ |
setScenario() | Sets the scenario for the model. | yii\ |
setUser() | Switches the session to the given user and tracks the main user id when impersonating. | UserSwitch |
setUserByIdentity() | Switches the session to the user identified by $identity. | UserSwitch |
toArray() | Converts the model into an array. | yii\ |
trigger() | Triggers an event. | yii\ |
validate() | Performs the data validation. | yii\ |
validateMultiple() static | Validates multiple models. | yii\ |
extractFieldsFor() protected | Extract nested fields from a fields collection for a given root field Nested fields are separated with dots (.). e.g: “item.id” The previous example would extract “id”. | yii\ |
extractRootFields() protected | Extracts the root field names from nested fields. | yii\ |
resolveFields() protected | Determines which fields can be returned by toArray(). | yii\ |
Events
Section titled “Events”| Event | Type | Description | Defined by |
|---|---|---|---|
EVENT_BEFORE_VALIDATE | yii\ | An event raised at the beginning of validate(). Event name: 'beforeValidate'. | yii\ |
EVENT_AFTER_VALIDATE | yii\ | An event raised at the end of validate() Event name: 'afterValidate'. | yii\ |
Constants
Section titled “Constants”| Constant | Value | Description | Defined by |
|---|---|---|---|
SCENARIO_DEFAULT | 'default' | The name of the default scenario. | yii\ |
Method details
Section titled “Method details”attributeLabels()
Section titled “attributeLabels() ”public function attributeLabels(): array<string, string>Returns the labels shown for the switch form attributes.
Returns
array<string, string>: Form labels keyed by attribute name.
getMainUser()
Section titled “getMainUser() ”public function getMainUser(): yii\web\UserReturns the main user; the original identity captured on the first switch.
Reads the captured id from the session when present; otherwise treats the current identity as the main one.
Returns
yii\web\User: User component carrying the original identity.
Throws
yii\base\InvalidConfigException: when the user component cannot be resolved.
getUser()
Section titled “getUser() ”public function getUser(): yii\web\UserReturns the user component bound to this switch model, resolving it lazily on first call.
Returns
yii\web\User: Bound user component.
Throws
yii\base\InvalidConfigException: when the configured component ID does not resolve to aUserinstance.
isMainUser()
Section titled “isMainUser() ”public function isMainUser(): boolReturns whether the current identity is the main user (or a guest).
Returns
bool: true when the session runs as the main user or as a guest; false while impersonating.
Throws
yii\base\InvalidConfigException: when the user component cannot be resolved.
reset()
Section titled “reset() ”public function reset(): voidRestores the session to the main user captured before the first switch.
Throws
yii\base\InvalidConfigException: when the user component cannot be resolved.
rules()
Section titled “rules() ”public function rules(): array<int, array<int|string, mixed>>Declares the validation rules applied to the switch form.
Returns
array<int, array<int|string, mixed>>: Validation rules consumed by Model::validate().
setUser()
Section titled “setUser() ”public function setUser(yii\web\User $user): voidSwitches the session to the given user and tracks the main user id when impersonating.
Parameters
| Parameter | Type | Description |
|---|---|---|
$user | yii\ | User component carrying the identity to switch to. |
Throws
yii\base\InvalidConfigException: when the user component cannot be resolved.RuntimeException: when the supplied user has no identity attached.
setUserByIdentity()
Section titled “setUserByIdentity() ”public function setUserByIdentity(yii\web\IdentityInterface $identity): voidSwitches the session to the user identified by $identity.
Parameters
| Parameter | Type | Description |
|---|---|---|
$identity | yii\ | Identity to impersonate. |
Throws
yii\base\InvalidConfigException: when the user component cannot be resolved.