1 person found this helpful
This is a good question. Going to escalate internally to see what we can do about the behavior.
I see a conflict of interest here if people are able to set arbitrary points, which I'm sure is partly responsible for its wonky behavior.
Stay tuned, not sure how this would pan out.
Thanks, Ryan. I see your point regarding the conflict of interest.
My current solution is to apply the points programmatically, leveraging the StatusLevelDAO's saveCalculatedPointLevel() method:
private void applyHistoricActivityPoints(final PersonEntity personEntity, final int userId)
assert (null != personEntity) : "Parameter personEntity cannot be null";
// Before priming the newly-provisioned user's profile with status level points, ensure
// that the application is configured to leverage the Jive database-backed DAO to maintain
// status level data
null != personEntity.getJive() &&
null != personEntity.getJive().getLevel() &&
long pointLevel = personEntity.getJive().getLevel().getPoints();
// Experiments have shown that activity within a Jive social group generates status
// level points that are attributed to the root community (container id: 1), and not
// the social group. Watch points as they are accumulated in Jive table
statusLevelDao.saveCalculatedPointLevel(userId, JiveConstants.COMMUNITY, 1, pointLevel);
I include the invocation of this method in a RESTful web service following a call to the PersonProvider's createPerson() method. It all works swimmingly.