[opencms-dev] Antwort: Re: Deactivate a User in java-code

Frank Pertack fpertack at vater-gruppe.de
Thu Jul 22 16:12:47 CEST 2010


Hi Pujan,

thank you for your advice, that worked (I forgot the "cmso.writeUser(user)" ;-)).

Best regards

Frank


-----opencms-dev-bounces at opencms.org schrieb: -----


An: The OpenCms mailing list <opencms-dev at opencms.org>
Von: Pujan Kafle <kafle.pujan at jimmy.harvard.edu>
Gesendet von: opencms-dev-bounces at opencms.org
Datum: 22.07.2010 03:36PM
Betreff: Re: [opencms-dev] Deactivate a User in java-code

Hello Frank,

I did something like this in the past:
My web-interface displays a list of OpenCms users and I provided a 
button to toggle activate/deactivate user.
- getOpenCmsUsers() returns the list of all OpenCms Users. I  am 
creating a hashtable with key "OpenCms userID" and value "CmsUser" and 
then setting it into session.

public List getOpenCmsUsers(){
    List openCmsUsers = null;
    CmsObject cmsObj = null;
    
    // get guest account name
    CmsDefaultUsers cdu = new CmsDefaultUsers();
    String guestUsername = cdu.getUserGuest();
    
    try {

        // get CmsObject as guest
        cmsObj = OpenCms.initCmsObject(cdu.getUserGuest());

        // login as Admin user
        cmsObj.loginUser("Admin","admin");
        
    }catch(CmsException e){

    }
    
    CmsOrgUnitManager oum = OpenCms.getOrgUnitManager();
    try {
        openCmsUsers = oum.getUsers(cmsObj,"",true);
    }
    catch (CmsException e){
        
    }
    return openCmsUsers;
}

public Hashtable<String, CmsUser> getOpenCmsUsersTable(){
    Hashtable<String, CmsUser> openCmsUsersTable = new Hashtable<String, 
CmsUser>();
    List users = getOpenCmsUsers();
    CmsUser c = null;
    
    if (users != null && users.size() > 0){
        Iterator userIter = users.iterator();
        while (userIter.hasNext()){
            c = (CmsUser)userIter.next();
            openCmsUsersTable.put(c.getId().getStringValue().trim(), c);
        }
    }    
    return openCmsUsersTable;
}


-----------

The activate/deactivate button passes CmsUser.getId() (userID field) to 
my handler and I execute the following snippet to toggle 
activate/deactivate:

    Hashtable usersTable = (Hashtable)session.getAttribute("usersHash");

    CmsUser user = (CmsUser)usersTable.get(userID);

    user.setEnabled((user.isEnabled())? false : true);
    try {
        cmsObject.writeUser(user);    
    }
    catch (CmsException e){
        errorMsg = e.getMessage();
        session.setAttribute("errorMsg", errorMsg);
    }

I hope it helps.

Best,
Pujan


On 7/22/2010 4:18 AM, Frank Pertack wrote:
> Hello,
>
> I have to write a class, in which a user can be deavtivated by a web-Interface.
>
> I found out the method "setDisabled()" in the CmsUser is deprecated. I shall use the CmsPrincipal instead.
> But somehow I am not able to instantiate a cmsPrincipal.
> Can anybody help me with a code-snippet, how I shall use the CmsPrincipal?
> - How can I load the User-Data with "readPrincipal(CmsObject cms, CmsUUID id)"?
> - Do I understand it right that the new method is "cmsPrincipal.setEnabled(false)" when I like to disable a user?
>
> Thank you in advance.
>
> Best regards
> Frank
>
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev

_______________________________________________
This mail is sent to you from the opencms-dev mailing list
To change your list options, or to unsubscribe from the list, please visit
http://lists.opencms.org/mailman/listinfo/opencms-dev


More information about the opencms-dev mailing list