diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index 31724f0ef98dd0..fa1c7b71941b05 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -3671,9 +3671,9 @@ server cluster AccountLogin = 1294 { char_string setupPIN = 0; } - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; - timed command Login(LoginRequest): DefaultSuccess = 2; - timed command Logout(): DefaultSuccess = 3; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; + fabric timed command Logout(): DefaultSuccess = 3; } /** The Test Cluster is meant to validate the generated code */ diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index c1c3047b03c942..ab95412e652756 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -6480,11 +6480,11 @@ client cluster AccountLogin = 1294 { } /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ - timed command Login(LoginRequest): DefaultSuccess = 2; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ - timed command Logout(): DefaultSuccess = 3; + fabric timed command Logout(): DefaultSuccess = 3; } /** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ @@ -6509,9 +6509,9 @@ server cluster AccountLogin = 1294 { char_string setupPIN = 0; } - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; - timed command Login(LoginRequest): DefaultSuccess = 2; - timed command Logout(): DefaultSuccess = 3; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; + fabric timed command Logout(): DefaultSuccess = 3; } endpoint 0 { diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 009d443d1c8742..dc99a10059a4ef 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -6439,11 +6439,11 @@ client cluster AccountLogin = 1294 { } /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ - timed command Login(LoginRequest): DefaultSuccess = 2; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ - timed command Logout(): DefaultSuccess = 3; + fabric timed command Logout(): DefaultSuccess = 3; } /** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ @@ -6468,9 +6468,9 @@ server cluster AccountLogin = 1294 { char_string setupPIN = 0; } - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; - timed command Login(LoginRequest): DefaultSuccess = 2; - timed command Logout(): DefaultSuccess = 3; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; + fabric timed command Logout(): DefaultSuccess = 3; } endpoint 0 { diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index 9a80376a01fd38..59711dfd3442e0 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -2448,9 +2448,9 @@ server cluster AccountLogin = 1294 { char_string setupPIN = 0; } - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; - timed command Login(LoginRequest): DefaultSuccess = 2; - timed command Logout(): DefaultSuccess = 3; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; + fabric timed command Logout(): DefaultSuccess = 3; } endpoint 0 { diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index 7a141abe1790b3..35363f41d3c8c4 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -1996,11 +1996,11 @@ client cluster AccountLogin = 1294 { } /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ - timed command Login(LoginRequest): DefaultSuccess = 2; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ - timed command Logout(): DefaultSuccess = 3; + fabric timed command Logout(): DefaultSuccess = 3; } endpoint 0 { diff --git a/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py b/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py index 9ac9085f0cc68b..8f924e3405187d 100644 --- a/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py +++ b/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py @@ -82,10 +82,10 @@ def human_text_string(value: Union[ClusterSide, StructTag, StructQuality, EventP return result elif type(value) is CommandQuality: result = "" - if CommandQuality.TIMED_INVOKE in value: - result += "timed " if CommandQuality.FABRIC_SCOPED in value: result += "fabric " + if CommandQuality.TIMED_INVOKE in value: + result += "timed " return result elif type(value) is ApiMaturity: if value == ApiMaturity.STABLE: diff --git a/src/app/zap-templates/zcl/data-model/chip/account-login-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/account-login-cluster.xml index 7e49682a8b1845..992b07897336c9 100644 --- a/src/app/zap-templates/zcl/data-model/chip/account-login-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/account-login-cluster.xml @@ -25,18 +25,20 @@ limitations under the License. true This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. - + Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. + - + Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. + - + The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 26f0dfbbe2faf5..e4a5e938eb28b2 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -6508,11 +6508,11 @@ client cluster AccountLogin = 1294 { } /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + fabric timed command access(invoke: administer) GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ - timed command Login(LoginRequest): DefaultSuccess = 2; + fabric timed command access(invoke: administer) Login(LoginRequest): DefaultSuccess = 2; /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ - timed command Logout(): DefaultSuccess = 3; + fabric timed command Logout(): DefaultSuccess = 3; } /** Attributes related to the electrical properties of a device. This cluster is used by power outlets and other devices that need to provide instantaneous data as opposed to metrology data which should be retrieved from the metering cluster.. */ diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp index 2d1e3e90812d7d..d94f544f06837d 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp @@ -23265,6 +23265,12 @@ bool CommandIsFabricScoped(ClusterId aCluster, CommandId aCommand) case Clusters::AccountLogin::Id: { switch (aCommand) { + case Clusters::AccountLogin::Commands::GetSetupPIN::Id: + return true; + case Clusters::AccountLogin::Commands::Login::Id: + return true; + case Clusters::AccountLogin::Commands::Logout::Id: + return true; default: return false; }