cancel
Showing results for 
Search instead for 
Did you mean: 

how to update property of user using -me- ?

dharmraj
Confirmed Champ
Confirmed Champ

@Override
public void execute(WebScriptRequest req, WebScriptResponse res) throws IOException {
logger.info("inside Execute method ");
ServiceResponseDTO responseObject = new ServiceResponseDTO();
String message = req.getParameter(MESSAGE);
logger.info(message);
NodeRef node = serviceRegistry.getPersonService().getPerson("-me-");
logger.info("node is " + node);
if(node!= null) {
serviceRegistry.getNodeService().setProperty(node, USER_EMAIL_STATUS, message);
responseObject.setStatus(STATUS_SUCCESS);
responseObject.setMessage("Property update for node ");
} else {
responseObject.setStatus(STATUS_FAILED);
responseObject.setMessage("Node is not there ");
}
res.getWriter().write(new ObjectMapper().writeValueAsString(responseObject));
}

webscript

<bean id="webscript.customer.user-update.get"
class="com.UserUpdate" parent="webscript">
<property name="serviceRegistry">
<ref bean="ServiceRegistry" />
</property>
</bean>

<webscript>
<shortname>User Update</shortname>
<description> User Update</description>
<url>/collaborate/user/update?message={message}</url>
<format default="json"></format>
<authentication>user</authentication>
</webscript>

this is working for admin but not working for other user 

{
    "status": {
        "code": 500,
        "name": "Internal Error",
        "description": "An error inside the HTTP server which prevented it from fulfilling the request."
    },
    "message": "06171445 Access Denied.  You do not have the appropriate permissions to perform this operation.",
    "exception": "",
    "callstack": [],
    "server": "Enterprise v5.2.3 (r852994b1-b12) schema 10,065",
    "time": "Jul 17, 2019 12:10:52 PM"
}
4 REPLIES 4

krutik_jayswal
Elite Collaborator
Elite Collaborator

Can you add some more details "-me-" is something which is confusing.Are you trying to get current logged in user?If that is so this is not the ppropriate method.Can you add the requirement for webscript as well?

-me- means current logged in user  so I am updating property of  logged in user

Below is the code for getting current logged in user name.

AuthenticationUtil.getFullyAuthenticatedUser();

Try to run the update code using transaction management and run that particular code as admin/system user.

janv
Employee
Employee

JFYI: The moniker "-me-" relates to remote public REST API:

https://api-explorer.alfresco.com/api-explorer/#!/people/getPerson

Regards,

Jan