I was trying to use the TypeExtensionTO function within the membership section 
of a slightly changed UserReportlet class.

However, I was unable to get this to work correctly.

Here is the section of code I was altering:

if (conf.getFeatures().contains(Feature.memberships)) {
                handler.startElement("", "", "memberships", null);

                for (MembershipTO memb : userTO.getMemberships()) {
                    atts.clear();

                    atts.addAttribute("", "", "groupKey",
                            ReportXMLConst.XSD_STRING, memb.getGroupKey());
                    atts.addAttribute("", "", "groupName", 
ReportXMLConst.XSD_STRING, memb.getGroupName());
                    handler.startElement("", "", "membership", atts);

                    if (conf.getFeatures().contains(Feature.resources)) {
                        UMembership actualMemb = 
user.getMembership(memb.getGroupKey()).orElse(null);
                        if (actualMemb == null) {
                            LOG.warn("Unexpected: cannot find membership for 
group {} for user {}",
                                    memb.getGroupKey(), user);
                        } else {
                            doExtractResources(handler, 
groupDataBinder.getGroupTO(actualMemb.getRightEnd(), true));
                        }
                    }

                    handler.endElement("", "", "membership");
                }

                handler.endElement("", "", "memberships");
            }



Thanks,
Caleb

________________________________
From: Caleb Mazure <caleb.maz...@capitalpreferences.com>
Sent: Thursday, October 7, 2021 12:18 PM
To: user@syncope.apache.org <user@syncope.apache.org>
Subject: Re: Reports Question

Right got it under "extensions" for groups.

How can I display this in the user reports? Take the demo for an example.

Thanks,
Caleb
________________________________
From: Francesco Chicchiriccò <ilgro...@apache.org>
Sent: Wednesday, October 6, 2021 7:24 PM
To: user@syncope.apache.org <user@syncope.apache.org>
Subject: Re: Reports Question

On 05/10/21 23:18, Caleb Mazure wrote:
Hi,

Thank you so much for your assistance so far. That makes sense, looking at the 
code as well.

When using the UserTO() function within the swagger API. I can see that the 
following is being produced.


"memberships": [
    {
      "groupKey": "b126a6fc-2bc0-4e5a-a6a6-fc2bc0ce5a1a",
      "groupName": "systems",
      "plainAttrs": [],
      "derAttrs": [],
      "virAttrs": []
    },
    {
      "groupKey": "f753222f-442b-4c2f-9322-2f442bcc2fe1",
      "groupName": "common-staff",
      "plainAttrs": [],
      "derAttrs": [],
      "virAttrs": []
    }
  ],

There are plainAttrs present, but they aren't being shown.


You will see plainAttrs only if the given memebrship does actually have 
plainAttrs.

Take a look at


http://syncope.apache.org/docs/2.1/reference-guide.html#type-extensions


for more details.


FTR, dynamic memberships (e.g. the initial scope of this thread) are instead 
defined in UserTO as

"dynMemberships": []


instead.


Regards.


From: Francesco Chicchiriccò <ilgro...@apache.org><mailto:ilgro...@apache.org>
Sent: Monday, October 4, 2021 10:12 PM
To: user@syncope.apache.org<mailto:user@syncope.apache.org> 
<user@syncope.apache.org><mailto:user@syncope.apache.org>
Subject: Re: Reports Question
Thanks,
Caleb
________________________________

On 03/10/21 02:29, Caleb Mazure wrote:
Hey Francesco,

I have been able to display the dynamic memberships in the reports. I can't 
seem to display the attributes of the memberships though. Is this feature 
avaliable? Do I need to edit the UserTo class if so, could you point me in the 
right direction?


Hi,
dynamic memberships have some limitations compared to standard memberships:


https://syncope.apache.org/docs/2.1/reference-guide.html#memberships-relationships


Among such limitations, dynamic memberships don't allow for attributes.


Regards.


From: Francesco Chicchiriccò <ilgro...@apache.org><mailto:ilgro...@apache.org>
Sent: Wednesday, September 29, 2021 9:00 PM
To: user@syncope.apache.org<mailto:user@syncope.apache.org> 
<user@syncope.apache.org><mailto:user@syncope.apache.org>
Subject: Re: Reports Question

________________________________



common/src/main/java/org/apache/syncope/common/lib

The second one, e.g.

core/src/main/java/org/apache/syncope/core/provisioning/java/job/report

is correct.

Regards.

On 28/09/21 23:51, Caleb Mazure wrote:
Thanks for the advice so far.

This is a screenshot after the Maven installation. Just confirming that I 
needed to create file structure for 
common/src/main/java/common/lib/src/main/java/org/apache/syncope/common/lib

[cid:part5.F0D2ACDC.265FB2E5@apache.org]

Thanks,
Caleb
________________________________
From: Francesco Chicchiriccò <ilgro...@apache.org><mailto:ilgro...@apache.org>
Sent: Tuesday, September 28, 2021 7:33 PM
To: user@syncope.apache.org<mailto:user@syncope.apache.org> 
<user@syncope.apache.org><mailto:user@syncope.apache.org>
Subject: Re: Reports Question

On 28/09/21 03:37, Caleb Mazure wrote:
Hi Francesco,

That all makes sense, I am converting our original .deb packages deployment to 
Maven.

I have moved the .war files produced from the maven build into 
/etc/tomcat8/Catalina/localhost/ ​which is being read by the server.xml file.

It seemed to run off the tomcat server, but I then thought it was still using 
the original instillation. I removed the apt Apache-syncope-console, and it 
still seems to run fine (I still have suspicions).

For a basic Maven build, the only files required are the .war files, correct?


Hi,
in your case it's /etc/tomcat8/Catalina/localhost/ because you're working on a 
Debian machine with Tomcat installed via the tomcat8 deb package but it could 
be also elsewhere if you had, for instance, download a more recent Tomcat 
release from https://tomcat.apache.org (about this, the latest Tomcat 9.x is 
recommended).


WAR files generated by Maven build can be deployed into all supported JavaEE 
containers including Tomcat, but please don't forget to read carefully [1] 
which explains how to build properly in order to define the deployment 
directories for ConnId bundles, configuration files and logs.


HTH
Regards.


[1] https://syncope.apache.org/docs/2.1/reference-guide.html#customization


________________________________
From: Francesco Chicchiriccò <ilgro...@apache.org><mailto:ilgro...@apache.org>
Sent: Friday, September 24, 2021 6:44 PM
To: user@syncope.apache.org<mailto:user@syncope.apache.org> 
<user@syncope.apache.org><mailto:user@syncope.apache.org>
Subject: Re: Reports Question

On 23/09/21 23:28, Caleb Mazure wrote:
Hello,

I currently have setup an installation of syncope on a Linux based machine, 
using the Debian packages provided.

I want to create a report that shows the dynamic memberships of users. The 
default only shows memberships.

To do this I believe I need to create a new java class somewhere that would be 
like the default UserReportletConf but I am not sure how to go about this.

Any advice would be great!

Hi Caleb,

as you are suggesting above, in order to create a new Reportlet [1] you will 
need to:

1. create a class named MyUserReportletConf extending [2], under 
common/src/main/java/common/lib/src/main/java/org/apache/syncope/common/lib/report


2. create a class named MyUserReportlet extending [3], annotated with 
@ReportletConfClass with class above, under 
core/src/main/java/org/apache/syncope/core/provisioning/java/job/report

3. once built and deployed, create a Java implementation of type REPORTLET for 
the class above - from Console, under Configuration > Implementations


Naturally, this assumes you are working with a Maven project generated from 
archetype [4]: this the sole deployment method currently provided allowing for 
extension and customization.


HTH
Regards.


[1] http://syncope.apache.org/docs/2.1/reference-guide.html#reportlets
[2] 
https://github.com/apache/syncope/blob/syncope-2.1.9/common/lib/src/main/java/org/apache/syncope/common/lib/report/UserReportletConf.java
[3] 
https://github.com/apache/syncope/blob/2_1_X/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
[4] http://syncope.apache.org/docs/2.1/getting-started.html#maven-project

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/



--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/

Reply via email to