Coverage report for Casbin.Model.Sections.Default.

Generated at 18/02/2019 12:10:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

Statistics for Casbin.Model.Sections.Default.pas

Number of lines covered39
Number of lines with code gen40
Line coverage97%


1
// Copyright 2018 by John Kouraklis and Contributors. All Rights Reserved.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//      http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
unit Casbin.Model.Sections.Default;
15
16
interface
17
18
uses
19
  Casbin.Model.Sections.Types, System.Generics.Collections, System.Types;
20
21
type
22
  TSectionDefault = record
23
    Header: string;   //PALOFF
24
    Tag: TStringDynArray;     //PALOFF
25
  end;
26
27
const
28
  defaultSection: TSectionDefault = (Header: 'default'; Tag: []);
29
30
  requestDefinition: TSectionDefault = (Header: 'request_definition';
31
                                         Tag: ['r']);
32
  policyDefinition: TSectionDefault = (Header: 'policy_definition';
33
                                         Tag: ['p']);
34
  roleDefinition: TSectionDefault = (Header: 'role_definition';
35
                                         Tag: ['g', 'g2']);
36
  policyEffectDefinition: TSectionDefault = (Header: 'policy_effect';
37
                                         Tag: ['e']);
38
  matchersDefinition: TSectionDefault = (Header: 'matchers';
39
                                         Tag: ['m']);
40
41
function createDefaultSection(const aSection: TSectionType): TSection;
42
43
implementation
44
45
uses
46
  Casbin.Exception.Types;
47
48
function createDefaultSection(const aSection: TSectionType): TSection;
49
begin
50
  case aSection of
51
    stDefault: begin
52
                 result:=TSection.Create;
53
                 result.EnforceTag:=True;
54
                 result.Header:=defaultSection.Header;
55
                 result.Required:=True;
56
                 result.Tag:=defaultSection.Tag;
57
                 result.&Type:=stDefault;
58
               end;
59
    stRequestDefinition: begin
60
                           result:=TSection.Create;
61
                           result.EnforceTag:=True;
62
                           result.Header:=requestDefinition.Header;
63
                           result.Required:=True;
64
                           result.Tag:=requestDefinition.Tag;
65
                           result.&Type:=stRequestDefinition;
66
                         end;
67
    stPolicyDefinition: begin
68
                          result:=TSection.Create;
69
                          result.EnforceTag:=True;
70
                          result.Header:=policyDefinition.Header;
71
                          result.Required:=True;
72
                          result.Tag:=policyDefinition.Tag;
73
                          result.&Type:=stPolicyDefinition;
74
                        end;
75
    stPolicyEffect: begin
76
                      result:=TSection.Create;
77
                      result.EnforceTag:=True;
78
                      result.Header:=policyEffectDefinition.Header;
79
                      result.Required:=True;
80
                      result.Tag:=policyEffectDefinition.Tag;
81
                      result.&Type:=stPolicyEffect;
82
                    end;
83
    stMatchers: begin
84
                  result:=TSection.Create;
85
                  result.EnforceTag:=True;
86
                  result.Header:=matchersDefinition.Header;
87
                  result.Required:=True;
88
                  result.Tag:=matchersDefinition.Tag;
89
                  result.&Type:=stMatchers;
90
                end;
91
    stRoleDefinition: begin
92
                        result:=TSection.Create;
93
                        result.EnforceTag:=True;
94
                        result.Header:=roleDefinition.Header;
95
                        result.Required:=False;
96
                        result.Tag:=roleDefinition.Tag;
97
                        result.&Type:=stRoleDefinition;
98
                      end;
99
  else
100
    raise ECasbinException.Create('Wrong secton type');
101
  end;
102
103
end;
104
105
end.
106