Presentation is loading. Please wait.

Presentation is loading. Please wait.

Configuring Fluid Topics FT 103 26.08.2014 Copyright © Antidot 2014.

Similar presentations


Presentation on theme: "Configuring Fluid Topics FT 103 26.08.2014 Copyright © Antidot 2014."— Presentation transcript:

1 Configuring Fluid Topics FT 103 26.08.2014 Copyright © Antidot 2014

2 2 Configuring Fluid Topics ■ Portal behavior ■ Authentication and Users management ■ Look & Feel ■ Facets & Metas ■ Data Processing ■ REST API Copyright © Antidot 2014

3 3 Configuring Fluid Topics ■ Set of configuration files (json, css, etc.) ■conf.json ■custom.less ■mongo.conf.json ■vhost.conf.json ■ws.conf.json ■header.vm ■… Copyright © Antidot 2014

4 4 Configuring Fluid Topics ■ Json files ■Can be accessed / edited remotely ■Should be source controlled ■Documentation embedded ■ /configuration-doc Copyright © Antidot 2014

5 5 Configuring Fluid Topics ■ Files stored on the FT server: /usr/local/afs7/FluidTopics/conf/ / / Copyright © Antidot 2014

6 6 Configuring Fluid Topics ■ For a given status tenant, files will be read and merged if they exist in the following order: ■conf/-/conf.json ■conf/ /-/conf.json ■conf/ / /conf.json ■ Special folders (-): factorize resources shared by all tenants or statuses Copyright © Antidot 2014

7 7 Portal behavior Configuring Fluid Topics Copyright © Antidot 2014

8 8 Portal behavior ■ Enable/disable UI languages (EN, FR, DE, JA) ■ Enable / disable Open Search ■ Enable / disable Crawl support Copyright © Antidot 2015 conf.json

9 9 Portal behavior ■ Feedbacks ■One or several email adresses ■Advanced Integration with ticketing system Copyright © Antidot 2015 conf.json

10 10 Authentication & Users management Configuring Fluid Topics Copyright © Antidot 2014

11 11 Authentication & User management ■ User groups retrieval mechanism ■ User roles retrieval mechanism ■ Authentication realms ■ SSO configuration ■ Authentication policy Copyright © Antidot 2014

12 12 Users management Configuring Fluid Topics Copyright © Antidot 2014

13 13 User Groups ■ Allow to restrict access to a given content ■ User can access to content with groups he belongs to ■User groups are retrieved when user logs in ■Content groups are set at processing time by using the Control File. Copyright © Antidot 2014

14 14 User Roles ■ Fluid Topics has a role-based permission system. ■ A role represents a set of permissions. ■ Allow to restrict access to FT functionalities ■ Retrieved when user logs in Copyright © Antidot 2014

15 15 User Groups & Roles ■ Several way to set the roles and groups of a given user: ■From SSO mechanism ■Manually in the conf.json ■Static realm ■defaultUserRoles property ■Script ■ft_set_user_roles ■ft_set_user_groups (requires antidot-fluidtopics-tools package) ■API (requires ADMIN role to be used) Copyright © Antidot 2014

16 16 User Roles ■ List of roles ■ADMIN ■KHUB_ADMIN ■PERSONAL_BOOK_USER ■HTML_EXPORT_USER ■PDF_EXPORT_USER Copyright © Antidot 2014

17 17 User Groups & Roles – Examples Copyright © Antidot 2014 USER1USER2USER3 ROLES KHUB_ADMIN PBK_USER PDF_USER PBK_USER  GROUPS tech_writer, partner, external partner, externalexternal Content access all2/31/3 Functionnalities access PBK ✓✓✗ PDF export ✓✗✗ LegacyPublications mapping ✓✗✗

18 18 Authentication Configuring Fluid Topics Copyright © Antidot 2014

19 19 Authentication Realms ■ Local register ■ Static ■ Against distant LDAP or AD ■ Single Sign On (SSO) Copyright © Antidot 2014

20 20 Authentication Realms ■ Local register Copyright © Antidot 2014 "authentication": { "realms": [ { "name": "internal", "type": "internal" } ] } "authentication": { "realms": [ { "name": "internal", "type": "internal" } ] } FT Database

21 21 Authentication Realms ■ Static Copyright © Antidot 2014 "authentication": { "realms": [ { "name": "static", "type": "static", "configuration": { "mail": "static-account@fluidtopics.com", "password": "aXHBEChodHJgUflUhziht7yDjCse", "name": "Static Account Username", "groups": "group1|group2", "roles": "KHUB_ADMIN|ADMIN|PERSONAL_BOOK_USER" } ] } "authentication": { "realms": [ { "name": "static", "type": "static", "configuration": { "mail": "static-account@fluidtopics.com", "password": "aXHBEChodHJgUflUhziht7yDjCse", "name": "Static Account Username", "groups": "group1|group2", "roles": "KHUB_ADMIN|ADMIN|PERSONAL_BOOK_USER" } ] }

22 22 Authentication Realms ■ LDAP Copyright © Antidot 2014 "authentication": { "realms": [ { "name": "ldap", "type": "ldap", "configuration": { "url": "ldaps://ldap.host.com:63", "systemUser": "cn=reader,dc=antidot,dc=net", "systemPassword": ”password", "searchBase": "dc=antidot,dc=net", "loginAttribute": "mail", "nameAttribute": "cn", "mailAttribute": "mail", "authenticationMechanism": "simple" } ] } "authentication": { "realms": [ { "name": "ldap", "type": "ldap", "configuration": { "url": "ldaps://ldap.host.com:63", "systemUser": "cn=reader,dc=antidot,dc=net", "systemPassword": ”password", "searchBase": "dc=antidot,dc=net", "loginAttribute": "mail", "nameAttribute": "cn", "mailAttribute": "mail", "authenticationMechanism": "simple" } ] } LDAP

23 23 Authentication Realms ■ SSO ■Principle Copyright © Antidot 2014 id name mail [group, role] …

24 24 Authentication Realms ■ SSO ■O-Auth 1 Copyright © Antidot 2014 "realms": [ { "name": "foobar", "type": "oauth1", "configuration": { "key": "123456789a123456789b123456789c123456789d123456789e123456789f1234", "secret": "82a1234b5678cd911121314e1516f17181920fg21324354hi65768798jklm98765" "label": "Foobar Authentication Service", "requestTokenUrl": "https://foobar.com/oauthv1/get_request_token", "requestTokenVerb": "GET", "accessTokenUrl": "https://foobar.com/oauthv1/get_access_token", "accessTokenVerb": "GET", "authorizationUrl": "https://foobar.com/oauthv1/login?oauth_tk=${token}", "profileUrl": "https://foobar.com/oauthv1/get_user", "idReaderFunction": "read_user_id", "nameReaderFunction": "read_user_name" } "realms": [ { "name": "foobar", "type": "oauth1", "configuration": { "key": "123456789a123456789b123456789c123456789d123456789e123456789f1234", "secret": "82a1234b5678cd911121314e1516f17181920fg21324354hi65768798jklm98765" "label": "Foobar Authentication Service", "requestTokenUrl": "https://foobar.com/oauthv1/get_request_token", "requestTokenVerb": "GET", "accessTokenUrl": "https://foobar.com/oauthv1/get_access_token", "accessTokenVerb": "GET", "authorizationUrl": "https://foobar.com/oauthv1/login?oauth_tk=${token}", "profileUrl": "https://foobar.com/oauthv1/get_user", "idReaderFunction": "read_user_id", "nameReaderFunction": "read_user_name" }

25 25 Authentication Realms ■ SSO ■O-Auth 2, only for: ■Google ■Twitter ■Facebook Copyright © Antidot 2014 "authentication": { "realms": [ { "name": "google", "type": "google", "configuration": { "key": "12345-abc123de.apps.googleusercontent.com", "secret": "53cR3t_K3Y" } ] } "authentication": { "realms": [ { "name": "twitter", "type": "twitter", "configuration": { "key": "mYTw1tt3RK3y", "secret": ”tw&TT3Rs3cr3t" } ] } "authentication": { "realms": [ { "name": "facebook", "type": "facebook", "configuration": { "key": ”10987654321", "secret": ”987cba654fde321" } ] }

26 26 Authentication Realms ■ SSO ■SAML Copyright © Antidot 2014 "authentication": { "realms": [ { "name": "name_example", "type": "saml2", "configuration": { "name": "name_example", "keystoreFile": "saml/keystore.jks", "keystorePassword": " ", "privateKeyPassword": " ", "entityId": " ", "maxAuthenticationLifetime": 28800, "idpMetadataFile": "saml/saml-idp.xml", "nameReaderFunction": "read_user_name" } ] } "authentication": { "realms": [ { "name": "name_example", "type": "saml2", "configuration": { "name": "name_example", "keystoreFile": "saml/keystore.jks", "keystorePassword": " ", "privateKeyPassword": " ", "entityId": " ", "maxAuthenticationLifetime": 28800, "idpMetadataFile": "saml/saml-idp.xml", "nameReaderFunction": "read_user_name" } ] } "authentication": { "realms": [ { "name": "name_example", "type": "saml2", "configuration": { "name": "name_example", "keystoreFile": "saml/keystore.jks", "keystorePassword": " ", "privateKeyPassword": " ", "entityId": " ", "maxAuthenticationLifetime": 28800, "idpMetadataFile": "saml/saml-idp.xml", "nameReaderFunction": "read_user_name" } ] }

27 27 Authentication Realms ■ authentication.js ■ SAML message sample Copyright © Antidot 2015 function read_user_name(name_id, attributes) { return attributes['givenName'][0] + ' ' + attributes['sn'][0]; } name_id: _5994dac0357573cf68000559eb1e1f4d376488459b attributes: { mail=[foobar-0216@yopmail.com], … urn:oid:0.9.2342.19200300.100.1.1=[foobar], givenName=[Foo], urn:oid:2.5.4.42=[Foo], … sn=[Bar], urn:oid:2.5.4.4=[Jupp], … }

28 28 Authentication Realms ■ Realms are not exclusive ■ Multi back-end authentication Copyright © Antidot 2014 "authentication": { "realms": [ { "name": "internal", "type": "internal" }, { "name": "google", "type": "google", "configuration": { "key": "12345-abc123de.apps.googleusercontent.com", "secret": "53cR3t_K3Y" } }, { "name": "twitter", "type": "twitter", "configuration": { "key": "mYTw1tt3RK3y", "secret": ”tw&TT3Rs3cr3t" } }, { "name": "facebook", "type": "facebook", "configuration": { "key": ”10987654321", "secret": ”987cba654fde321" }...

29 29 Authentication Realms ■ SSO – must know ■FT need some information about user ■Id (autogenerated) ■Name ■Mail ■Role ■Group ■SSO id (Oauth-id, SAML id) ■These informations must be retrieved from the user profile within the SSO response (strongly depends on SSO type) Copyright © Antidot 2014

30 30 Authentication Realms ■ SSO – must know ■Missing profile’s informations are asked when trying to login ■Log in: a cookie (sessionId) is initialized for 30min ■sessionId renewed after each query to FT ■Log out: sessionId is deleted ■When a user account is removed, users’ resources (pbk, bookmarks, …) are deleted Copyright © Antidot 2014

31 31 Authentication Policy ■ Password rules ■LOW ■6 char. Min ■HIGH ■8 char.min +at least 3 of the 4 characters –lowercase letter, uppercase lette, number, non alphanumeric Copyright © Antidot 2014 "authentication": { "realms": [ /* [..] */ }, "passwordPolicy": { "level": ”LOW" }

32 32 Authentication Policy Copyright © Antidot 2014 "authentication": { "realms": [ /* [..] */ }, "registration": { "type": "PUBLIC" } ■ Registration types ■PUBLIC ■VERIFIED (default) ■CLOSED

33 33 Authentication Policy ■ Force login Copyright © Antidot 2014

34 34 Look and feel Configuring Fluid Topics Copyright © Antidot 2014

35 35 Look and feel ■ Rebranding ■Logo ■Colors ■Fonts ■Languages ■Emails ■Title ■Tagline ■Vanity URL Copyright © Antidot 2015

36 36 Look and feel ■ Rebranding ■Logo ■Colors ■Fonts ■Languages ■Emails ■Title ■Tagline ■Vanity URL Copyright © Antidot 2015

37 37 Look and feel ■ Managed by both conf.json and custom css files ■ Customization can be applied on the three portal pages: ■Home ■Search ■Reader ■ In following slides, changes show in: ■Green can be made simply by overriding css classes ■Red made by tweaking environment variables on the server side Copyright © Antidot 2014

38 38 Look and feel – Customize Home Copyright © Antidot 2015

39 39 Look and feel – Customize Home Copyright © Antidot 2015 favicon color color, font, size custom main logo portal title and description color, font, size IN BACK OFFICE: Several slides with custom images, text and link

40 40 Look and feel – Customize Search Copyright © Antidot 2015

41 41 Look and feel – Customize Search Copyright © Antidot 2015 colors header logo color Title, abstract and breadcrumbs : color, font type and font size

42 42 Look and feel – Customize Reader Copyright © Antidot 2015

43 43 Look and feel – Customize Reader Copyright © Antidot 2015 colors, font type/size Content Styles: Titles, content, tables, lists, monospace, codeblock, emphasis, … Everything is customizable based on standard DITA styles, custom output-class attribute custom icons color custom icons custom header logo

44 44 Look and feel – Customize Reader ■ Any DITA tag (standards and specialized ones) can be customized ■Exemple: add « Steps to do: » before the list of steps in a Task. ■ output-class attribute can be used to apply custom styles to any part of content Copyright © Antidot 2015

45 45 Look and feel – Rebranding ■ conf.json Copyright © Antidot 2015 ■ custom.less (css) { "ui": { "languages": [ "en", "fr" ], "mainTitle": { "en": "Antidot Training" }, "subTitle": { "en": "Learning Antidot products" }, "homePageMainLogo": "ATS.png", "headerLogo": "ATS_header.png", "mailHeaderLogo": "ATS.png", "favicon": "antidot32.png", "supportMail": "support@antidot.net", "feedbackMails": [ "formation@antidot.net" ], … @color1: #852a79; @color2: #60afbf; @color3: #f3efe7; @color4: #ffbb1a; @color5: #5a5a64; @font1: Garamond, Helvetica, Arial, sans-serif; @font2: Courier, Helvetica, Arial, sans-serif;

46 46 Look and feel – Rebranding ■ conf.json Copyright © Antidot 2015 ■ custom.less (css) { "ui": { "languages": [ "en", "fr" ], "mainTitle": { "en": "Antidot Training" }, "subTitle": { "en": "Learning Antidot products" }, "homePageMainLogo": "ATS.png", "headerLogo": "ATS_header.png", "mailHeaderLogo": "ATS.png", "favicon": "antidot32.png", "supportMail": "support@antidot.net", "feedbackMails": [ "formation@antidot.net" ], … @color1: #852a79; @color2: #60afbf; @color3: #f3efe7; @color4: #ffbb1a; @color5: #5a5a64; @font1: Garamond, Helvetica, Arial, sans-serif; @font2: Courier, Helvetica, Arial, sans-serif;

47 47 Look and feel – Add a custom header Copyright © Antidot 2015

48 48 Look and feel – Add a custom header ■ Added in the Fluid Topics portal by: ■putting a header.vm template file in the appropriate configuration directory and ■entering the dimensions of the header in the custom.less file. Copyright © Antidot 2015

49 49 Look and feel – Add a custom header ■ header.vm Copyright © Antidot 2015 #if ($isAuthenticated) Welcome $user.displayName ! Your email is $user.emailAddress. #foreach( $key in $user.authenticationIdentifiers.keySet() ) Your $key id is $user.authenticationIdentifiers[$key]. #end #else You are not authenticated. #end #if ($isAuthenticated) Welcome $user.displayName ! Your email is $user.emailAddress. #foreach( $key in $user.authenticationIdentifiers.keySet() ) Your $key id is $user.authenticationIdentifiers[$key]. #end #else You are not authenticated. #end

50 50 Look and feel – Add a custom header ■ custom.less Copyright © Antidot 2015 … @tenantCustomHeaderHeight: 100px; … @tenantCustomHeaderHeight: 100px; …

51 51 Look and feel – PDF Templates Customization ■ The PBK to PDF feature uses the pdf-template.vm default template file located in: /usr/local/afs7/Fluid-Topics/conf/ / /pdf_templates/default/ Copyright © Antidot 2015

52 52 Look and feel – PDF Templates Customization ■ The pdf-template.vm file is auto-documented ■ It can be customized by using CSS parameters. ■ A full example can be found from the official Antidot documentation portal ■https://doc.antidot.nethttps://doc.antidot.net Copyright © Antidot 2015

53 53 Look and feel – PDF Templates Customization ■ pdf-template.vm placeholders: ■$author-display-name ■$author-email ■$description ■$formatted-date ■$formatted-time ■$outline ■$pbk-title ■$tenant-title ■$topics Copyright © Antidot 2015

54 54 Facets and metas Configuring Fluid Topics Copyright © Antidot 2014

55 55 Facets ■ Facets are automatically created: ■from DITA metadata tags in case of Dita content ■from facet infos of Control Files in case of UD ■ Every Standard DITA prolog - topicmeta - bookmeta tags generates a Facet Copyright © Antidot 2014

56 56 Facets Core Network ATS9900 VOBB IMS Copyright © Antidot 2014

57 57 Facets ■ Facets display and behavior is driven by conf.json ■ Modifications are taken on-the-fly ■ What can be changed? ■Display (Home and Search pages) ■Order ■Title ■Type Copyright © Antidot 2015

58 58 Facets – Display ■ By default: ■No facets visible on Search pages ■No facet visible on Home page ■Home page displayed facets is a subset of Search pages ■ Available parameters: ■home: facets displayed on Home page ■componentsBasedContents: facets displayed on Search page Copyright © Antidot 2015

59 59 Facets & Metas – Title ■ Is the same on Home and Search pages ■ Can be defined for each UI language Copyright © Antidot 2015

60 60 Facets – Order ■ Can be different between Home and Search pages ■ Declare facets to display in desired order Copyright © Antidot 2015

61 61 Facets – Type ■ Is the same on Home and Search pages ■ Always OR by default ■ Can be set to AND, OR (default) and MONOVALUED. Copyright © Antidot 2015

62 62 Metas ■ Book and/or topics properties to display Copyright © Antidot 2014

63 63 Metas – Display & Order ■ By default: ■No metas visible on Search page ■No metas visible on Reader page ■ Available parameters: ■metadata: metas displayed (and ordered) on both Search and Reader pages Copyright © Antidot 2015

64 64 Facets – Examples ■ Change Publication and Training titles and Training types ■ Restrict on Home page ■ Change Search page order Copyright © Antidot 2015 "facets": { "descriptors": [ { "id": "publication_title", "label": { "en": "Publication Title", "fr": "Titre de la publication" } }, { "id": "version", "label": { "en": "Version", "fr": "Version" } }, { "id": "my_training_facet", "type": "AND", "label": { "en": "Training", "fr": "Formation" } ], "home": [ "version", "publication_title" ], "componentBasedContents": [ "publication_title", "my_training_facet" "version" ] }

65 65 Facets – Examples Copyright © Antidot 2015

66 66 Metas – Examples ■ Change Product and Training meta title ■ Change Search page order ■ Restrict on Reader page Copyright © Antidot 2015 "metadata": { "descriptors": [ { "id": "prodname", "label": { "en": "Product", "fr": "Produit" } }, { "id": "my_training_meta", "label": { "en": "Training metadata", "fr": "Metadonnée formation" } ], "componentBasedContents": [ "prodname", "my_training_meta" ], "book": [ "prodname", "my_training_meta" ] },

67 67 Metas – Examples Copyright © Antidot 2015

68 68 Data processing Configuring Fluid Topics Copyright © Antidot 2014

69 69 Data processing ■ What can be done? ■Enable / Disable Related Links ■Ditamaps to process ■Ditavals to apply ■Layered access to the content Copyright © Antidot 2014

70 70 Data processing ■ Available parameters ■related_links ■ditamaps ■allowed_ditavals_for_ditamaps ■privateDitavals Copyright © Antidot 2015

71 71 Data processing ■ related_links Copyright © Antidot 2015

72 72 ■ Users vs. ditaval mapping ■ conf.json Data processing – Rights "privateDitavals":{ "Steele Accounting User Guide":"asteele", "Grey Accounting User Guide":"cgrey" }, "ditamaps":[ "ditamaps/my_ditamap1.ditamap", "ditamaps/my_ditamap2.ditamap" ], "allowed_ditavals_for_ditamaps":{ "DITA/my_ditamap.ditamap":[ "DITA/ditavals/cre_test_pdf.ditaval" ] }

73 73 ■ Users vs. ditaval mapping ■ conf.json Data processing – Rights "privateDitavals":{ "Steele Accounting User Guide":"asteele", "Grey Accounting User Guide":"cgrey" }, "ditamaps":[ "ditamaps/my_ditamap1.ditamap", "ditamaps/my_ditamap2.ditamap" ], "allowed_ditavals_for_ditamaps":{ "DITA/my_ditamap.ditamap":[ "DITA/ditavals/cre_test_pdf.ditaval" ] }

74 74 REST API Configuring Fluid Topics Copyright © Antidot 2014

75 75 REST API ■ Fluid Topics exposes some of its features through web services. ■ JSON based REST web services. Copyright © Antidot 2014

76 76 REST API Copyright © Antidot 2015 WS-APIWS-API

77 77 REST API – Authentication ■ Some WS require authentication ■authentication can be done on-the-fly with username and password credentials ■based on Basic Access Authentication ■specific http header name: FT-Authorization. ■Example: FT-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Copyright © Antidot 2015 Base64 encoding of Aladdin:open sesame

78 78 REST API ■ The structure of the Fluid Topics server REST API is organized according to the underlying components and data you can access ■…/api/khub/ dataflow/ users/ Copyright © Antidot 2015

79 79 REST API – Access Knowledge Hub ■ /api/khub/maps ■List the maps; access the content of a specific map. ■ /api/khub/${mapId}/topics ■List the topics; access the content of a specific topic. ■ /api/khub/documents ■List the unstructured documents; access the content of a specific document. ■ … Copyright © Antidot 2015

80 80 Examples – Listing maps ■ GET ■ /api/khub/maps Copyright © Antidot 2015 [ { id: "8e76cba30da252b528b3210944808e78", title: "AFS Configuration Guide", metadata: [ { key: "version", label: "Version", values: [ "7.8" ] }, { key: "prodname", label: "Produit", values: ["AIF"] }, { key: "Platform", label: "Plate-forme", values: ["Debian"] }, { key: "category", label: "Catégorie", values: [ "Reference Guide"] } ] }, …

81 81 Examples – Getting maps topics ■ GET ■ /api/khub/maps/${mapId}/topics Copyright © Antidot 2015 { "id": "mapId", "title": "Map Title", "topics": [ { "topic": { "topicId": "topic1", "title": "Topic 1 Title", "link": { "topicsUris": [ "topic1" ] } }, "children": [] }, … 1 1 { "topic": { "topicId": "topic2", "title": "Topic 2 Title", "link": { "topicsUris": [ "topic2", "topic2EmbeddedTopic1", "topic2EmbeddedTopic2" ] } }, "children": [ { "topic": { "topicId": "topic2Child1", "title": "Topic 2.1 Title", "link": { "topicsUris": [ "topic2Child1" ] } }, "children": [] } ] } ] } 2 2

82 82 Examples – Getting topics ■ GET ■ /api/khub/maps/${mapId}/topics/${topicId}/content Copyright © Antidot 2015 { "id": "topic1", "title": "Topic 1 Title", "text": "Content of topic1. It can contain some HTML code!" }

83 83 REST API – Building links to content ■ Cf. FT102: Managing Your Data with FT – « Dataflow – URIS » Copyright © Antidot 2015

84 84 REST API – Publications and processing reports ■ List of available publication reports ■ GET ■ /api/dataflows/${dataflow_name}/report/jobs[?since=${date}] Copyright © Antidot 2015 [{ "id": "jobId1", "date": "2015-04-26..." },{ "id": "jobId2", "date": "2015-04-27..." }]

85 85 REST API – Publications and processing reports ■ Getting content activity of a given report ■ GET ■ /api/dataflows/${dataflow_name}/report/ jobs/${jobId} Copyright © Antidot 2015 "id": "jobId1" "date": "2015-04-27...", "maps": [ { "uri": "map1-uri", "status": "DELETED", "topics": [ { "uri": "topic1-uri", "status": "DELETED" } ] }, { "uri": "map3-uri", "status": "UPDATED", "topics": [ { "uri": "topicx-uri", "status": ”CREATED" }, { "uri": "topicy-uri", "status": "CREATED" } ] } ] }

86 86 REST API – User management ■ Listing users ■GET ■…/api/users Copyright © Antidot 2015 [ { "id": "a43eb18a-3f48-4732-9389-61b540ce9d0d", "displayName": "A User", "emailAddress": "user@mail.com" }, { "id": "d5831ef1-b3a5-47ef-b6dd-168a7c65c973", "displayName": "Another User", "emailAddress": "another.user@gmail.com" } ]

87 87 REST API – User management ■ Getting/setting users groups ■GET ■/api/users/${id}/groups Copyright © Antidot 2015 { "id": "a43eb18a-3f48-4732-9389-61b540ce9d0d", "manualGroups": ["group1"], "authenticationGroups": ["group2","group3"] }

88 88 REST API – User management ■ Getting/setting users groups ■PUT ■/api/users/${id}/groups Copyright © Antidot 2015 { "manualGroups": ["group10", "group11"] } { "id": "a43eb18a-3f48-4732-9389-61b540ce9d0d", "manualGroups": ["group10", "group11"], "authenticationGroups": ["group2","group3"] }

89 89 REST API – User management ■ Getting/setting users roles ■GET ■/api/users/${id}/roles Copyright © Antidot 2015 { "id": "a43eb18a-3f48-4732-9389-61b540ce9d0d", "manualRoles": [], "authenticationRoles": ["ADMIN"] }

90 90 REST API – User management ■ Getting/setting users roles ■PUT ■/api/users/${id}/roles Copyright © Antidot 2015 { "manualRoles": ["KHUB_ADMIN","PERSONAL_BOOK_USER"] } { "id": "a43eb18a-3f48-4732-9389-61b540ce9d0d", "manualRoles": ["KHUB_ADMIN","PERSONAL_BOOK_USER"], "authenticationRoles": [], "defaultRoles": [] }

91 91 Questions Configuring Fluid Topics Copyright © Antidot 2014


Download ppt "Configuring Fluid Topics FT 103 26.08.2014 Copyright © Antidot 2014."

Similar presentations


Ads by Google