Coverage Report

Created: 2025-07-18 06:54

/src/S2OPC/src/ClientServer/services/bgenc/session_roles.c
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Licensed to Systerel under one or more contributor license
3
 * agreements. See the NOTICE file distributed with this work
4
 * for additional information regarding copyright ownership.
5
 * Systerel licenses this file to you under the Apache
6
 * License, Version 2.0 (the "License"); you may not use this
7
 * file except in compliance with the License. You may obtain
8
 * a copy of the License at
9
 *
10
 *   http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing,
13
 * software distributed under the License is distributed on an
14
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
 * KIND, either express or implied.  See the License for the
16
 * specific language governing permissions and limitations
17
 * under the License.
18
 */
19
20
/******************************************************************************
21
22
 File Name            : session_roles.c
23
24
 Date                 : 30/09/2024 13:04:32
25
26
 C Translator Version : tradc Java V1.2 (06/02/2022)
27
28
******************************************************************************/
29
30
/*------------------------
31
   Exported Declarations
32
  ------------------------*/
33
#include "session_roles.h"
34
35
/*------------------------
36
   INITIALISATION Clause
37
  ------------------------*/
38
0
void session_roles__INITIALISATION(void) {
39
0
}
40
41
/*--------------------
42
   OPERATIONS Clause
43
  --------------------*/
44
void session_roles__compute_user_roles(
45
   const constants__t_user_i session_roles__p_user,
46
0
   constants__t_sessionRoles_i * const session_roles__p_roles) {
47
0
   {
48
0
      t_bool session_roles__l_nid_valid;
49
0
      constants__t_Node_i session_roles__l_roleSet_node;
50
0
      t_bool session_roles__l_continue;
51
0
      constants__t_Reference_i session_roles__l_ref;
52
0
      t_bool session_roles__l_bValidRoleRef;
53
0
      constants__t_Node_i session_roles__l_maybe_role_node;
54
0
      constants__t_NodeId_i session_roles__l_maybe_role_nodeId;
55
0
      t_bool session_roles__l_bres;
56
      
57
0
      *session_roles__p_roles = constants__c_sessionRoles_empty;
58
0
      address_space_itf__readall_AddressSpace_Node(constants__c_Server_ServerCapabilities_RoleSet_NodeId,
59
0
         &session_roles__l_nid_valid,
60
0
         &session_roles__l_roleSet_node);
61
0
      if (session_roles__l_nid_valid == true) {
62
0
         session_roles_granted_bs__initialize_session_roles();
63
0
         roleset_references_it__init_iter_roleset_references(session_roles__l_roleSet_node,
64
0
            &session_roles__l_continue);
65
0
         while (session_roles__l_continue == true) {
66
0
            roleset_references_it__continue_iter_roleset_references(&session_roles__l_continue,
67
0
               &session_roles__l_ref);
68
0
            session_role_eval__is_ref_role(session_roles__l_ref,
69
0
               &session_roles__l_bValidRoleRef,
70
0
               &session_roles__l_maybe_role_node,
71
0
               &session_roles__l_maybe_role_nodeId);
72
0
            if (session_roles__l_bValidRoleRef == true) {
73
0
               session_role_eval__role_eval_user(session_roles__p_user,
74
0
                  session_roles__l_maybe_role_node,
75
0
                  &session_roles__l_bres);
76
0
               if (session_roles__l_bres == true) {
77
0
                  session_roles_granted_bs__add_role_to_session(session_roles__l_maybe_role_nodeId);
78
0
               }
79
0
            }
80
0
         }
81
0
         session_roles_granted_bs__pop_session_roles(session_roles__p_roles);
82
0
      }
83
0
   }
84
0
}
85