SAML, not all Attributes from IDP #3365

Closed
opened 2026-02-05 06:30:00 +03:00 by OVERLORD · 6 comments
Owner

Originally created by @kubuntu70 on GitHub (Nov 27, 2022).

Describe the Bug

My Environment is:
BookStack: v22.10
IDP Provider: ucs Univention

My Problem ist:
only der Attributes "id" and "groups" visible

Steps to Reproduce

1.) .env
AUTH_METHOD=saml2
AUTH_AUTO_INITIATE=false
SAML2_NAME=SSO
SAML2_EMAIL_ATTRIBUTE=email
SAML2_EXTERNAL_ID_ATTRIBUTE=id
SAML2_DISPLAY_NAME_ATTRIBUTES=MeinName
SAML2_IDP_ENTITYID=https://ucs*.at/simplesamlphp/saml2/idp/metadata.php
SAML2_AUTOLOAD_METADATA=true
APP_DEBUG=true
SAML2_DUMP_USER_DETAILS=true
SAML2_IDP_AUTHNCONTEXT=true

2.) ucs metadata.php

$metadata['https://bookstack.*.at/saml2/metadata'] = array(
	'AssertionConsumerService' => array('https://bookstack.*.at/saml2/acs'),
	'SingleLogoutService' => array('https://bookstack.*.at/saml2/sls'),
	'sign.logout' => TRUE,
	'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
	'simplesaml.nameidattribute' => 'email',
	'simplesaml.attributes' => true,
	'attributes' => array('mail', 'uid', 'memberOf', 'cn', 'email'),
	'OrganizationName' => 'Bookstack',
	'assertion.lifetime' => 300,
	'authproc' => array(
		10 => array(
			'class' => 'authorize:Authorize',
			'regex' => FALSE,
			'case_insensitive_attributes' => array('memberOf', 'enabledServiceProviderIdentifier'),
			'enabledServiceProviderIdentifier' => array('SAMLServiceProviderIdentifier=https://bookstack.*.at/saml2/metadata,cn=saml-serviceprovider,cn=univention,dc=*,dc=at'),
			'memberOf' => $memberof,
			'mail' => 'email',

		),
		50 => array(
			'class' => 'core:AttributeMap',
			'mail' => 'email',
			'uid' => 'id',
			'memberOf' => 'groups',
			'cn' => 'MeinName',
		),
	),
);

3.) Login
..ANMELDEN MIT SSO

4.) Debug (Firefox/Chrome)

{"id_from_idp":"_cb217a008d32f0ca64dfce1b4f953afe6612632a10","attrs_from_idp":{"id":["***"],"groups":["cn=Domain Users,cn=groups,dc=*,dc=at","cn=*,cn=groups,dc=*,dc=at"]},"attrs_after_parsing":{"external_id":"*","name":"*","email":null,"saml_id":"_cb217a008d32f0ca64dfce1b4f953afe6612632a10"}}

Expected Behaviour

email not NULL
name not id

Screenshots or Additional Context

No response

Browser Details

Firefox 108

Exact BookStack Version

v22.10

PHP Version

7.4

Hosting Environment

centos8

Originally created by @kubuntu70 on GitHub (Nov 27, 2022). ### Describe the Bug My Environment is: BookStack: v22.10 IDP Provider: ucs Univention My Problem ist: only der Attributes "id" and "groups" visible ### Steps to Reproduce 1.) .env AUTH_METHOD=saml2 AUTH_AUTO_INITIATE=false SAML2_NAME=SSO SAML2_EMAIL_ATTRIBUTE=email SAML2_EXTERNAL_ID_ATTRIBUTE=id SAML2_DISPLAY_NAME_ATTRIBUTES=MeinName SAML2_IDP_ENTITYID=https://ucs*.at/simplesamlphp/saml2/idp/metadata.php SAML2_AUTOLOAD_METADATA=true APP_DEBUG=true SAML2_DUMP_USER_DETAILS=true SAML2_IDP_AUTHNCONTEXT=true 2.) ucs metadata.php <details> ``` $metadata['https://bookstack.*.at/saml2/metadata'] = array( 'AssertionConsumerService' => array('https://bookstack.*.at/saml2/acs'), 'SingleLogoutService' => array('https://bookstack.*.at/saml2/sls'), 'sign.logout' => TRUE, 'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress', 'simplesaml.nameidattribute' => 'email', 'simplesaml.attributes' => true, 'attributes' => array('mail', 'uid', 'memberOf', 'cn', 'email'), 'OrganizationName' => 'Bookstack', 'assertion.lifetime' => 300, 'authproc' => array( 10 => array( 'class' => 'authorize:Authorize', 'regex' => FALSE, 'case_insensitive_attributes' => array('memberOf', 'enabledServiceProviderIdentifier'), 'enabledServiceProviderIdentifier' => array('SAMLServiceProviderIdentifier=https://bookstack.*.at/saml2/metadata,cn=saml-serviceprovider,cn=univention,dc=*,dc=at'), 'memberOf' => $memberof, 'mail' => 'email', ), 50 => array( 'class' => 'core:AttributeMap', 'mail' => 'email', 'uid' => 'id', 'memberOf' => 'groups', 'cn' => 'MeinName', ), ), ); ``` </details> 3.) Login ..ANMELDEN MIT SSO 4.) Debug (Firefox/Chrome) ``` {"id_from_idp":"_cb217a008d32f0ca64dfce1b4f953afe6612632a10","attrs_from_idp":{"id":["***"],"groups":["cn=Domain Users,cn=groups,dc=*,dc=at","cn=*,cn=groups,dc=*,dc=at"]},"attrs_after_parsing":{"external_id":"*","name":"*","email":null,"saml_id":"_cb217a008d32f0ca64dfce1b4f953afe6612632a10"}} ``` ### Expected Behaviour email not NULL name not id ### Screenshots or Additional Context _No response_ ### Browser Details Firefox 108 ### Exact BookStack Version v22.10 ### PHP Version 7.4 ### Hosting Environment centos8
OVERLORD added the 🐛 Bug label 2026-02-05 06:30:00 +03:00
Author
Owner

@kubuntu70 commented on GitHub (Nov 27, 2022):

SAML Message decoder shows:

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
                ID="_5817c3521ffd0db378c28b06cac53942b69f5b6a45"
                Version="2.0"
                IssueInstant="2022-11-27T14:48:48Z"
                Destination="https://bookstack.*-org.at/saml2/acs"
                InResponseTo="ONELOGIN_67c830f093c486587f4dc0a755d2ef421030c18a">
  <saml:Issuer>https://ucs-sso.*-org.at/simplesamlphp/saml2/idp/metadata.php</saml:Issuer>
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
      <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
      <ds:Reference URI="#_5817c3521ffd0db378c28b06cac53942b69f5b6a45">
        <ds:Transforms>
          <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
          <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms>
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
        <ds:DigestValue>Nm/5qqnqpuIU0VBAKLnL5dpSxPwBw0epKyxz2VF+5Hc=</ds:DigestValue>
      </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>Fd0oXHM4GF9B0vzewpWxEC4DzChLKc7psj6kHgRUierNnRECi+X9b4rjzSWvVLWEhlmgpmKkJmz5JAVQFg6sVeW9TDWWtK3j2GmgZGqdQvpoGzWLiKptT+iqOb08YOS9otZrLUYuwQ19pxADZN2/c92edVCBbaBCh3tYzHyZs5BnWEt422csuDwSmWlGDHbvrFfkl+bQyRNWMQZLEmkTztsABt9738TkckbWL7kTS6OZTkGLkSOmIoKN6BJkfPGYi/NdAm/eKG0Tv/akulz7M2KYgEKjf01UA9xssCMi1NLlwVPaoLg+qqQNH2OXetgCx48JgIqV/RZIKE3IyhCaRA==</ds:SignatureValue>
    <ds:KeyInfo>
      <ds:X509Data>
        <ds:X509Certificate>MIIFZTCCBE2gAwIBAgIBAjANBgkRaFerepeFQYET8=</ds:X509Certificate>
      </ds:X509Data>
    </ds:KeyInfo>
  </ds:Signature>
  <samlp:Status>
    <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" /></samlp:Status>
  <saml:Assertion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema"
                  ID="_34d7de6dfcf1d1f04941ef5b74efbba4ddc0e00102"
                  Version="2.0"
                  IssueInstant="2022-11-27T14:48:48Z">
    <saml:Issuer>https://ucs-sso.*-org.at/simplesamlphp/saml2/idp/metadata.php</saml:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
      <ds:SignedInfo>
        <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
        <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
        <ds:Reference URI="#_34d7de6dfcf1d1f04941ef5b74efbba4ddc0e00102">
          <ds:Transforms>
            <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms>
          <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
          <ds:DigestValue>/2nwmDpU+YT63kFD+IKSgF7s73ap0SZHOgyPM0yBHzY=</ds:DigestValue>
        </ds:Reference>
      </ds:SignedInfo>
      <ds:SignatureValue>kA5CV8TU5ZBbe3CzeaNo5ssi4TxWY9pAX1gEzb3rTZC4Zlie2Ht4S/TozcV+covjAz9Unzu081+y+CmHMP9nqKPxM/22/Jz974+wdTLEAsg8Ag73wBhDHNFNeR0LCya9V3wbcDROp7IwRFrZy+8zd1CJalSe4HI81ucVaiX9yJhKaVLEiwc84qME7WyEOcSfO+gkN+WneFACCs7632y3CWnWNXcqRqLM4erjgWm99/K06zd4Z+YY6VsnaynurAdZw/tYepglRgjQ+JVffaRfUd0cVnS5xrUFIJiK2VazorM6gNvZOxEarHSNsCTFdn+Q74eXc0WbSmKiywVQD2KiSg==</ds:SignatureValue>
      <ds:KeyInfo>
        <ds:X509Data>
          <ds:X509Certificate>MIIFZTCCBE2gFerepeFQYET8=</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </ds:Signature>
    <saml:Subject>
      <saml:NameID SPNameQualifier="https://bookstack.*-org.at/saml2/metadata"
                   Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">_4594ebf271a520561db56d4d4ebc0d52881f1a2bea</saml:NameID>
      <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
        <saml:SubjectConfirmationData NotOnOrAfter="2022-11-27T14:53:48Z"
                                      Recipient="https://bookstack.*-org.at/saml2/acs"
                                      InResponseTo="ONELOGIN_67c830f093c486587f4dc0a755d2ef421030c18a" /></saml:SubjectConfirmation>
    </saml:Subject>
    <saml:Conditions NotBefore="2022-11-27T14:48:18Z"
                     NotOnOrAfter="2022-11-27T14:53:48Z">
      <saml:AudienceRestriction>
        <saml:Audience>https://bookstack.*-org.at/saml2/metadata</saml:Audience>
      </saml:AudienceRestriction>
    </saml:Conditions>
    <saml:AuthnStatement AuthnInstant="2022-11-27T10:50:58Z"
                         SessionNotOnOrAfter="2022-11-27T22:50:58Z"
                         SessionIndex="_648dd77fa5d6bb18611c017f3a7e4788e75c52166b">
      <saml:AuthnContext>
        <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
      </saml:AuthnContext>
    </saml:AuthnStatement>
    <saml:AttributeStatement>
      <saml:Attribute Name="id"
                      NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
        <saml:AttributeValue xsi:type="xs:string">*s</saml:AttributeValue>
      </saml:Attribute>
      <saml:Attribute Name="groups"
                      NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
        <saml:AttributeValue xsi:type="xs:string">cn=Domain Users,cn=groups,dc=*-org,dc=at</saml:AttributeValue>
        <saml:AttributeValue xsi:type="xs:string">cn=*,cn=groups,dc=*-org,dc=at</saml:AttributeValue>
      </saml:Attribute>
    </saml:AttributeStatement>
  </saml:Assertion>
</samlp:Response>
@kubuntu70 commented on GitHub (Nov 27, 2022): SAML Message decoder shows: <details> ``` <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_5817c3521ffd0db378c28b06cac53942b69f5b6a45" Version="2.0" IssueInstant="2022-11-27T14:48:48Z" Destination="https://bookstack.*-org.at/saml2/acs" InResponseTo="ONELOGIN_67c830f093c486587f4dc0a755d2ef421030c18a"> <saml:Issuer>https://ucs-sso.*-org.at/simplesamlphp/saml2/idp/metadata.php</saml:Issuer> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> <ds:Reference URI="#_5817c3521ffd0db378c28b06cac53942b69f5b6a45"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <ds:DigestValue>Nm/5qqnqpuIU0VBAKLnL5dpSxPwBw0epKyxz2VF+5Hc=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>Fd0oXHM4GF9B0vzewpWxEC4DzChLKc7psj6kHgRUierNnRECi+X9b4rjzSWvVLWEhlmgpmKkJmz5JAVQFg6sVeW9TDWWtK3j2GmgZGqdQvpoGzWLiKptT+iqOb08YOS9otZrLUYuwQ19pxADZN2/c92edVCBbaBCh3tYzHyZs5BnWEt422csuDwSmWlGDHbvrFfkl+bQyRNWMQZLEmkTztsABt9738TkckbWL7kTS6OZTkGLkSOmIoKN6BJkfPGYi/NdAm/eKG0Tv/akulz7M2KYgEKjf01UA9xssCMi1NLlwVPaoLg+qqQNH2OXetgCx48JgIqV/RZIKE3IyhCaRA==</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MIIFZTCCBE2gAwIBAgIBAjANBgkRaFerepeFQYET8=</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <samlp:Status> <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" /></samlp:Status> <saml:Assertion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="_34d7de6dfcf1d1f04941ef5b74efbba4ddc0e00102" Version="2.0" IssueInstant="2022-11-27T14:48:48Z"> <saml:Issuer>https://ucs-sso.*-org.at/simplesamlphp/saml2/idp/metadata.php</saml:Issuer> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> <ds:Reference URI="#_34d7de6dfcf1d1f04941ef5b74efbba4ddc0e00102"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <ds:DigestValue>/2nwmDpU+YT63kFD+IKSgF7s73ap0SZHOgyPM0yBHzY=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>kA5CV8TU5ZBbe3CzeaNo5ssi4TxWY9pAX1gEzb3rTZC4Zlie2Ht4S/TozcV+covjAz9Unzu081+y+CmHMP9nqKPxM/22/Jz974+wdTLEAsg8Ag73wBhDHNFNeR0LCya9V3wbcDROp7IwRFrZy+8zd1CJalSe4HI81ucVaiX9yJhKaVLEiwc84qME7WyEOcSfO+gkN+WneFACCs7632y3CWnWNXcqRqLM4erjgWm99/K06zd4Z+YY6VsnaynurAdZw/tYepglRgjQ+JVffaRfUd0cVnS5xrUFIJiK2VazorM6gNvZOxEarHSNsCTFdn+Q74eXc0WbSmKiywVQD2KiSg==</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MIIFZTCCBE2gFerepeFQYET8=</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml:Subject> <saml:NameID SPNameQualifier="https://bookstack.*-org.at/saml2/metadata" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">_4594ebf271a520561db56d4d4ebc0d52881f1a2bea</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData NotOnOrAfter="2022-11-27T14:53:48Z" Recipient="https://bookstack.*-org.at/saml2/acs" InResponseTo="ONELOGIN_67c830f093c486587f4dc0a755d2ef421030c18a" /></saml:SubjectConfirmation> </saml:Subject> <saml:Conditions NotBefore="2022-11-27T14:48:18Z" NotOnOrAfter="2022-11-27T14:53:48Z"> <saml:AudienceRestriction> <saml:Audience>https://bookstack.*-org.at/saml2/metadata</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement AuthnInstant="2022-11-27T10:50:58Z" SessionNotOnOrAfter="2022-11-27T22:50:58Z" SessionIndex="_648dd77fa5d6bb18611c017f3a7e4788e75c52166b"> <saml:AuthnContext> <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> <saml:AttributeStatement> <saml:Attribute Name="id" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xsi:type="xs:string">*s</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="groups" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xsi:type="xs:string">cn=Domain Users,cn=groups,dc=*-org,dc=at</saml:AttributeValue> <saml:AttributeValue xsi:type="xs:string">cn=*,cn=groups,dc=*-org,dc=at</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion> </samlp:Response> ``` </details>
Author
Owner

@ssddanbrown commented on GitHub (Nov 27, 2022):

Hi @kubuntu70,
I can't see any evidence of your SAML system providing the name or email in response to BookStack.
Are you sure the SAML system is configured to provide those attributes?

@ssddanbrown commented on GitHub (Nov 27, 2022): Hi @kubuntu70, I can't see any evidence of your SAML system providing the name or email in response to BookStack. Are you sure the SAML system is configured to provide those attributes?
Author
Owner

@kubuntu70 commented on GitHub (Nov 27, 2022):

Hi Dan,
in UCS i can configure:
Service provider identifier: https://bookstack.-org.at/saml2/metadata
Respond to this service provider URL after login: https://bookstack.
-org.at/saml2/acs
Single logout URL for this service provider: https://bookstack.*-org.at/saml2/sls
Format of NameID attribute: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Name of the attribute that is used as NameID: email
Name of the organization for this service provider: Bookstack
and extended settings:

image

thats it.

image

image

dd576645c110.png)

The Attributes in LDAP are ok (with LDAP Login is all OK)

Maybe I'll have to talk to the people of Univention?

Only the Attributes 'id' and 'groups' going to bookstack?

@kubuntu70 commented on GitHub (Nov 27, 2022): Hi Dan, in UCS i can configure: Service provider identifier: https://bookstack.*-org.at/saml2/metadata Respond to this service provider URL after login: https://bookstack.*-org.at/saml2/acs Single logout URL for this service provider: https://bookstack.*-org.at/saml2/sls Format of NameID attribute: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress Name of the attribute that is used as NameID: email Name of the organization for this service provider: Bookstack and extended settings: ![image](https://user-images.githubusercontent.com/104837514/204151234-a759edb4-b7b8-4c1d-93c9-34c319a4e0fa.png) thats it. ![image](https://user-images.githubusercontent.com/104837514/204151359-546dcc9e-6793-4d5d-8f34-e4e28919c12d.png) ![image](https://user-images.githubusercontent.com/104837514/204151394-e5858fa5-a405-4517-aa41-57f56eb1efeb.png) dd576645c110.png) The Attributes in LDAP are ok (with LDAP Login is all OK) Maybe I'll have to talk to the people of Univention? Only the Attributes 'id' and 'groups' going to bookstack?
Author
Owner

@ssddanbrown commented on GitHub (Nov 28, 2022):

Yeah, only those are going to BookStack.
I'm not really familiar with UCS at all, but there seems to be a lot of configuration/mapping at that layer so might be something not aligned, or something missing to request the required attributes from the upstream LDAP system.
I can't really advise outside of what's reaching BookStack.

@ssddanbrown commented on GitHub (Nov 28, 2022): Yeah, only those are going to BookStack. I'm not really familiar with UCS at all, but there seems to be a lot of configuration/mapping at that layer so might be something not aligned, or something missing to request the required attributes from the upstream LDAP system. I can't really advise outside of what's reaching BookStack.
Author
Owner

@kubuntu70 commented on GitHub (Nov 28, 2022):

Thank you for the quick reply. I'm doing a task at the UCS.

@kubuntu70 commented on GitHub (Nov 28, 2022): Thank you for the quick reply. I'm doing a task at the UCS.
Author
Owner

@kubuntu70 commented on GitHub (Nov 29, 2022):

solved, the attributes had to be released first!

!I love Bookstack !!

@kubuntu70 commented on GitHub (Nov 29, 2022): solved, the attributes had to be released first! !I love Bookstack !!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#3365