[Building Sakai] question about admin privilege
Nuno Fernandes
nuno at ufp.edu.pt
Fri Jan 15 01:47:05 PST 2010
Hi Hai Vo,
Are you trying to give admin privilege to a user on UI, or do you wish to
perform an admin operation triggered by an user who don't have such
permission (eg, adding users to a site after an user (with access role)
clicking on something on a tool page)?
For the second case (done in code), you could probably use something like:
AdminExecution exec = new AdminExecution() {
@Override
public Object execution() throws Exception {
return performSakaiAdminOpAndReturnString();
}
};
try{
return (String) exec.execute();
}catch(Exception e){
log.error("Error while executing admin operation", e);
return null;
}
where, *AdminExecution* is an abstract class:
abstract class AdminExecution {
public AdminExecution() {};
public abstract Object execution() throws Exception;
public Object execute() throws Exception {
Object returnObject = null;
Session sakaiSession = sessionManager.getCurrentSession();
String currentUserId = sakaiSession.getUserId();
String currentUserEid = sakaiSession.getUserEid();
if(!"admin".equals(currentUserId)) {
// current user not admin
try {
sakaiSession.setUserId("admin");
sakaiSession.setUserEid("admin");
authGroupService.refreshUser("admin");
returnObject = execution();
} catch (Exception e) {
log.error("Error occurred while executing as Sakai Administrator", e);
throw e;
} finally {
sakaiSession.setUserId(currentUserId);
sakaiSession.setUserEid(currentUserEid);
authGroupService.refreshUser(currentUserId);
}
}else{
// current user is admin
try {
returnObject = execution();
} catch (Exception e) {
log.error("Error occurred while executing as Sakai Administrator", e);
throw e;
}
}
return returnObject;
}
}
Hope it helps,
Nuno
On Fri, Jan 15, 2010 at 8:48 AM, Hai Vo Thanh <v0thanhhai at yahoo.com> wrote:
> Dear all,
> is there any method that can set a user have admin privilege temporally?
> Thanks.
> -----------
> Hai Vo
>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
>
--
Nuno Fernandes
Profile | http://facebook.com/nfgrilo | http://linkedin.com/in/nfgrilo
Web | http://codingwithcoffee.com | http://twitter.com/nfgrilo
Work | Analyst/Programmer @ UFP-UV [http://elearning.ufp.pt]
| Analyst/Programmer @ Sakai Foundation [
http://sakaiproject.org]
| Sakai Fellow 2008 @ Sakai Foundation [
http://confluence.sakaiproject.org//x/6oCTAQ]
Address | Universidade Fernando Pessoa [http://www.ufp.pt]
| Praça 9 de Abril, 349 | 4249-004 Porto
| tel: + 351 22 507 13 00 | fax: + 351 22 550 82 69
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20100115/ff71f8ad/attachment.html
More information about the sakai-dev
mailing list