On a project that I was working on, due to some specific business requirements, we wanted to see if the out-of-the-box Ratings and Reviews component is working/functioning as expected when allowing anonymous users to give their ratings and reviews. I thought it might be valuable for some of us to know the findings, so I decided to share them with the community via this article. The answer is: It Is Not Working! Here are the reasons:

 

  1. Clientlibs. The out-of-the-box rating and reviews component has its own set of clientlibs, and the clientlibs contained in /libs/social/tally/components/rating/ and /libs/social/commons/components/ugcparbase/. By default, the libs folder (and its sub-folders) is restricted access to “anonymous” user. Although, there is a work around for this.

  2. Access Permission. We are using /content/usergenerated/content/ready folder as the working data storage for partner’s company information, products, and apps. So, we are using close-user-group (cug) and access-control-level (ACL) to manage user access permissions. Hence, anonymous user doesn’t have access to partners’ information. If we allow anonymous user to provide rating and to write reviews of the products, we need to grant read/write access to all the /content/usergenerated/content/ready/[language-code]/partners/[two-letter-code]/[company-name] folders. That pose some concerns, but we can handle those concerns by restricting access to the usergenerated area via browser, etc… so anonymous user won’t be able to view the content nodes/pages via browser.

  3. Issue with restricting a user from giving repetitive rating/review. If allowing anonymous user to give rating/reviews, we cannot restrict a user from giving repetitive rating/reviews.

  4. Rating results. This is the show stopper. Here’s why:

    • The choice of rating/reviews are stored under the username.

      So, every end (non-authenticated) user is anonymous user. Hence, all their ratings are stored under the same node structure of the same user name, which is “anonymous”. So, this is viewed as 1 user’s ratings/reviews and not multiple end users’ ratings/reviews.

    • By default, when logged in and land on a page (i.e. a product or app details page), the user will see her/his own choice of rating/reviews (if s/he gave a rating/reviews), and not the calculated average star rating. For instance, if a user chose to give a product a “5 stars” rating, the user will see “red 5 stars” rating when logged in.

      So, the problem with this is that every end/anonymous user will see the latest choice (of ratings/reviews) that the last end/anonymous user gave to the product/page. They will never see the calculated average star rating scores (usually is in yellow stars).