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.

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”

Menu Model - Add Subscription Claim

Menu Model - Select Subscription Claim

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:

Menu Model - Inherited Subscription Claim

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

Menu Model - Add Subscription Claim to SubMenu

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.

Menu Model - Generated

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.