CMDBuild Forum

V2.51 - Problem displaying relations with non admin user

I have a user account with only read access. I can see the data just fine. But when I click on the Relations tab, I get the error below and no relations are displayed. The user is configured as Type=Normal. But when I configure it as Limited Administrator, I don't get this error. 

ERROR:

Call: services/json/management/modcard/getrelationlist

-------------------------------------------------------

Error: java.lang.IllegalArgumentException: there must be at least one where clause

at org.cmdbuild.dao.query.clause.where.OrWhereClause.or(OrWhereClause.java:66)

at org.cmdbuild.privileges.fetchers.DataViewRowAndColumnPrivilegeFetcherFactory$RowAndColumnPrivilegeFetcherImpl.fetchPrivilegeFiltersFor(DataViewRowAndColumnPrivilegeFetcherFactory.java:113)

at org.cmdbuild.privileges.fetchers.DataViewRowAndColumnPrivilegeFetcherFactory$RowAndColumnPrivilegeFetcherImpl.fetchPrivilegeFiltersFor(DataViewRowAndColumnPrivilegeFetcherFactory.java:80)

at org.cmdbuild.dao.view.user.privileges.ForwardingRowAndColumnPrivilegeFetcher.fetchPrivilegeFiltersFor(ForwardingRowAndColumnPrivilegeFetcher.java:26)

at org.cmdbuild.dao.view.user.UserDataView.getAdditionalFiltersFor(UserDataView.java:194)

at org.cmdbuild.dao.query.clause.join.JoinClause$JoinClauseBuilder.addTargetLeaves(JoinClause.java:168)

at org.cmdbuild.dao.query.clause.join.JoinClause$JoinClauseBuilder.addAnyTarget(JoinClause.java:154)

at org.cmdbuild.dao.query.clause.join.JoinClause$JoinClauseBuilder.withTarget(JoinClause.java:94)

at org.cmdbuild.dao.query.QuerySpecsBuilderImpl.join(QuerySpecsBuilderImpl.java:362)

at org.cmdbuild.dao.view.user.UserQuerySpecsBuilder.join(UserQuerySpecsBuilder.java:74)

at org.cmdbuild.logic.commands.AbstractGetRelation.getRelationQuery(AbstractGetRelation.java:90)

at org.cmdbuild.logic.commands.AbstractGetRelation.getRelationQuerySpecsBuilder(AbstractGetRelation.java:81)

at org.cmdbuild.logic.commands.GetRelationList.exec(GetRelationList.java:118)

at org.cmdbuild.logic.data.access.DefaultDataAccessLogic.getRelationListEmptyForWrongId(DefaultDataAccessLogic.java:254)

at org.cmdbuild.logic.data.access.ForwardingDataAccessLogic.getRelationListEmptyForWrongId(ForwardingDataAccessLogic.java:64)

at org.cmdbuild.logic.data.access.ForwardingDataAccessLogic.getRelationListEmptyForWrongId(ForwardingDataAccessLogic.java:64)

at sun.reflect.GeneratedMethodAccessor446.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

Dealt with this myself, too - run this query against your cmdbuild database: UPDATE “Grant” SET “PrivilegeFilter” = null WHERE “PrivilegeFilter” = ‘{}’;