From 8198cbaa4cf9472a0589a8cddc5f5a5da50b224f Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Thu, 10 Jun 2021 21:35:07 +0200
Subject: xml: ssh: move user/group definition to includable files

(cherry picked from commit 556e03922f78f8e258c6d6630ad47569be376e11)
---
 interface-definitions/include/ssh-group.xml.i | 12 +++++++
 interface-definitions/include/ssh-user.xml.i  | 12 +++++++
 interface-definitions/ssh.xml.in              | 48 +++------------------------
 3 files changed, 29 insertions(+), 43 deletions(-)
 create mode 100644 interface-definitions/include/ssh-group.xml.i
 create mode 100644 interface-definitions/include/ssh-user.xml.i

diff --git a/interface-definitions/include/ssh-group.xml.i b/interface-definitions/include/ssh-group.xml.i
new file mode 100644
index 000000000..9c8b8692f
--- /dev/null
+++ b/interface-definitions/include/ssh-group.xml.i
@@ -0,0 +1,12 @@
+<!-- include start from ssh-group.xml.i -->
+<leafNode name="group">
+  <properties>
+    <help>Allow members of a group to login</help>
+    <constraint>
+      <regex>[a-z_][a-z0-9_-]{1,31}[$]?</regex>
+    </constraint>
+    <constraintErrorMessage>illegal characters or more than 32 characters</constraintErrorMessage>
+    <multi/>
+  </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/ssh-user.xml.i b/interface-definitions/include/ssh-user.xml.i
new file mode 100644
index 000000000..677602dd8
--- /dev/null
+++ b/interface-definitions/include/ssh-user.xml.i
@@ -0,0 +1,12 @@
+<!-- include start from ssh-user.xml.i -->
+<leafNode name="user">
+  <properties>
+    <help>Allow specific users to login</help>
+    <constraint>
+      <regex>[a-z_][a-z0-9_-]{1,31}[$]?</regex>
+    </constraint>
+    <constraintErrorMessage>illegal characters or more than 32 characters</constraintErrorMessage>
+    <multi/>
+  </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/ssh.xml.in b/interface-definitions/ssh.xml.in
index 6887f6ec4..54742f1d0 100644
--- a/interface-definitions/ssh.xml.in
+++ b/interface-definitions/ssh.xml.in
@@ -13,9 +13,7 @@
         <children>
           <node name="access-control">
             <properties>
-              <help>SSH user/group access controls. Directives are processed
-                in the following order: deny-users, allow-users, deny-groups and
-                allow-groups.</help>
+              <help>SSH user/group access controls</help>
             </properties>
             <children>
               <node name="allow">
@@ -23,26 +21,8 @@
                   <help>Allow user/group SSH access</help>
                 </properties>
                 <children>
-                  <leafNode name="group">
-                    <properties>
-                      <help>Allow members of a group to login</help>
-                      <constraint>
-                        <regex>[a-z_][a-z0-9_-]{1,31}[$]?</regex>
-                      </constraint>
-                      <constraintErrorMessage>illegal characters or more than 32 characters</constraintErrorMessage>
-                      <multi/>
-                    </properties>
-                  </leafNode>
-                  <leafNode name="user">
-                    <properties>
-                      <help>Allow specific users to login</help>
-                      <constraint>
-                        <regex>[a-z_][a-z0-9_-]{1,31}[$]?</regex>
-                      </constraint>
-                      <constraintErrorMessage>illegal characters or more than 32 characters</constraintErrorMessage>
-                      <multi/>
-                    </properties>
-                  </leafNode>
+                  #include <include/ssh-group.xml.i>
+                  #include <include/ssh-user.xml.i>
                 </children>
               </node>
               <node name="deny">
@@ -50,26 +30,8 @@
                   <help>Deny user/group SSH access</help>
                 </properties>
                 <children>
-                  <leafNode name="group">
-                    <properties>
-                      <help>Disallow members of a group to login</help>
-                      <constraint>
-                        <regex>[a-z_][a-z0-9_-]{1,31}[$]?</regex>
-                      </constraint>
-                      <constraintErrorMessage>illegal characters or more than 32 characters</constraintErrorMessage>
-                      <multi/>
-                    </properties>
-                  </leafNode>
-                  <leafNode name="user">
-                    <properties>
-                      <help>Disallow specific users to login</help>
-                      <constraint>
-                        <regex>[a-z_][a-z0-9_-]{1,31}[$]?</regex>
-                      </constraint>
-                      <constraintErrorMessage>illegal characters or more than 32 characters</constraintErrorMessage>
-                      <multi/>
-                    </properties>
-                  </leafNode>
+                  #include <include/ssh-group.xml.i>
+                  #include <include/ssh-user.xml.i>
                 </children>
               </node>
             </children>
-- 
cgit v1.2.3