Any API to check if current user is watching a space

We have got multiple spaces in our environment and we are looking for single page where we show current users subscription.

Do we have any API using which we can check if current user is watching the space or not.

We are using v5.8.16

3 answers

0 vote

Hi Devinder,

Using User Macro you can check this Documentation for knowledge, some examples, $action.remoteUser.fullName

{run-now} $current_user_name{run-now}

#set( $username = "$req.getRemoteUser()" )

There is Google Analytics Plugin for Confuence as well.

0 vote
Stephen Deutsch Community Champion Dec 29, 2015

It depends which API you are talking about.  For the internal Java API, there is the notificationManager:

https://docs.atlassian.com/confluence/latest/com/atlassian/confluence/mail/notification/NotificationManager.html

I wrote a user macro using this that show all watches for a particular user and lets administrators see/change the watches for other users:

https://bitbucket.org/stephendeutsch/confluence-user-macros/src/39c3a025dacc6b45abc0105f0b7a21a7375690b4/bulk%20remove%20watchers/remove%20watches%20for%20user.vm?at=master&fileviewer=file-view-default

If you're talking about the remote API, it is currently only available in the XML/JSON RPC API:

https://developer.atlassian.com/confdev/confluence-rest-api/confluence-xml-rpc-and-soap-apis/remote-confluence-methods

Specifically:

/rpc/json-rpc/confluenceservice-v1/getWatchersForSpace

Sorry if i was not clear with my problem statement. I am looking for API using which i can find if user is watching a specified space or not. e.g. If we have 3 space (say with Key S1, S2, S3), i want to make a call (something like /isUserWatching/SpaceKey=S1) and expect a return value true/false from api (based on if user is watching S1 space or not). My end goal is to make a page where i could display: S1 - Watching [api would have returned true] S2 - Not Watching [api would have returned false] S1 - Watching [api would have returned true] P.S. Seems xml/json is deprecated and we are expected to use rest based api. Is there any in rest based?

0 vote
Stephen Deutsch Community Champion Dec 30, 2015

Hi Devinder,

I understood what you were asking for, but unfortunately there is not any REST API that I am aware of that does what you are asking.  Although the xml/json-rpc API is deprecated, it is still very much in use until the new REST API can cover the features.

Since you are embedding it in a page, however, there seems to be no need to call an external API.  Why not just use a user macro and call the internal API?  It's a lot faster and everything loads on page load.

## @noparams
#set ( $containerManagerClass = $content.class.forName('com.atlassian.spring.container.ContainerManager') )
#set ( $getInstanceMethod = $containerManagerClass.getDeclaredMethod('getInstance',null) )
#set ( $containerManager = $getInstanceMethod.invoke(null,null) )
#set ( $containerContext = $containerManager.containerContext )
#set ( $notificationManager = $containerContext.getComponent('notificationManager') )

#set ( $Integer = 0 )
#if ( $Integer.parseInt($generalUtil.getBuildNumber()) > 4300 )
  #set ( $user = $userAccessor.getUserByName($req.getRemoteUser()) )
#else
  #set ( $user = $userAccessor.getUser($req.getRemoteUser()) )
#end

#foreach( $confluenceSpace in $spaceManager.getAllSpaces() )
  #if ( $confluenceSpace.isGlobal() )
    #if ( $notificationManager.getNotificationByUserAndSpace($user, $confluenceSpace.key) )
      #set ( $isWatching = '<span class="aui-lozenge aui-lozenge-success">Watching</span>' )
    #else
      #set ( $isWatching = '<span class="aui-lozenge">Not Watching</span>' )
    #end
    <p><a href="$confluenceSpace.homePage.urlPath">$confluenceSpace.name</a> ($confluenceSpace.key) - $isWatching </p>
  #end
#end

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Posted 3 hours ago in Confluence

Calling all marketing teams who use Confluence - we want to hear from you!

Hi Community! me again 🙂 If you’re a marketing team using Confluence, we want to hear your story! How did you start using Confluence? What are your use cases? What have been some of the benefits?...

25 views 0 2
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you