Subscription Claims
As subscription claims são restrições de acesso a menus e submenus da aplicação.
Isto significa que, quando existe uma subscription claim definida para determinada entrada de menu, apenas é possível ao utilizador aceder-lhe, se a sua subscrição tiver associada a respetiva claim.
Product Model
No modelo do produto devem ser adicionadas as subscription claims disponíveis para a aplicação.
Para tal basta, aceder ao product model, arrastar a subscription claim e definir o seu nome e a sua descrição.
Menu Model
Por sua vez, é no menu model, onde se faz a associação dessas claims às entradas de menu que pretendemos que o seu acesso seja condicionado pela existência dessas claims na subscrição.
Sempre que sejam adicionadas subscription claims a uma entrada de menu, as entradas de menu que sejam suas filhas, herdarão as subscription claims definidas no pai (Inherited Subscription Claims).
Exemplo: Atribuição da claim “module_stocks” à entrada de menu “MaterialsManagement”


Assim, uma vez definida a subscription claim para a entrada de menu “MaterialsManagement”, todas as entradas de menu suas filhas herdarão esta subscription claim:

Além da subscription claim herdada, cada entrada de menu filha poderá ter, igualmente, novas subscription claims associadas:

Isto significa que, para que um utilizador tenha acesso à entrada de menu “OpenShippingRequest”, a sua subscrição deve ter as claims “module_stocks” e “operation_openshippingrequests” associadas.
Geração de Código
Após a transformação da solução do produto, são associadas às SupportedOperations as subscription claims atribuídas a cada entrada de menu, separadas por vírgula no caso de existir mais do que uma.

Condicionamento das Subscription Claims no contexto da aplicação
Após o login na aplicação e seleção da respetiva subscrição, é efetuada uma verificação da existência de claims presentes no AppContext.
Caso uma entrada de menu tenha atribuídas claims, é validado se as mesmas constam associadas à subscrição em uso.
No caso destas claims existirem associadas à subscrição, o utilizador terá acesso às respetivas entradas de menu, caso contrário, estas entradas de menu estarão indisponíveis.
<script type="application/json" id="appContextModel">
{
"productName": "Jasmin Standard Edition",
"user": {
"id": "1fc29c9b-2f6e-4645-8ea3-f15f6033af39",
"name": "rosa.carvalho@primaverabss.com",
"displayName": "Rosa A. Carvalho 22",
(...)
},
(...)
"appSettings" : {
"subscriptionUrl" : ""
},
"subscriptionParametersClaims" : ["module_stocks","operation_openshippingrequests"],
"subscriptionKey" : "800076-0001"
}
</script>
Associação de claims a uma subscrição
A associação de claims a subscrições é efetuada pelo Service Management ou no ficheiro de subscrições para efeitos de testes em ambientes não produtivos.
No processo de aprovisionamento, com base na solução a aprovisionar, são injetados nos parâmetros da subscrição as respetivas claims.
Exemplo: Item: CLAIMS-STANDARD
Claims a injectar nos parâmetros:
[
{ "parameter": "claim_module_stocks", "value": 1 },
{ "parameter": "claim_operation_standardorganizationoverview", "value": 1 },
{ "parameter": "claim_setting_allowattachment", "value": 1 },
{ "parameter": "claim_operation_pt_taxauthoritywebservices", "value": 1 },
{ "parameter": "claim_operation_companyregistrationdata", "value": 1 },
{ "parameter": "claim_setting_generalwithholdingtaxes", "value": 1 },
{ "parameter": "claim_operation_processreturnorders", "value": 1 },
{ "parameter": "claim_operation_debitnote", "value": 1 }
]
Visibilidade de campos/ações condicionada por subscription claims
Atualmente, a visibilidade de campos/ações pode ser condicionada por subscription claims. Ou seja, pode se definir que um determinado campo ou ação apenas se encontra visível em subscrições que tenham atribuída a subscription claim associada a esse mesmo campo/ação.
O condicionamento de campos é efetuado no Presentation Model, ao nível da edição de views. Para tal basta aceder ao editor de layout da view, selecionar o que se pretende condicionar e na propriedade "Visibility Claims" definir a claim pretendida para o seu condicionamento.
Este condicionamento da visibilidade está disponível tanto para campos como para linhas, colunas, expanders e grelhas.
Para condicionar a visibilidade de operações, é necessário aceder ao Presentation Model e aceder às propriedades das ações alvo de condicionamento presentes no Editor Operation.
Nota: para condicionar a visibilidade de um campo/operação por mais do que uma subscription claim, devem separar-se as claims por vírgula.