You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Raju (Jira)" <ji...@apache.org> on 2019/08/20 08:32:00 UTC

[jira] [Created] (DIRSTUDIO-1237) How to Edit an Entry in through code

Raju created DIRSTUDIO-1237:
-------------------------------

             Summary: How to Edit an Entry in through code 
                 Key: DIRSTUDIO-1237
                 URL: https://issues.apache.org/jira/browse/DIRSTUDIO-1237
             Project: Directory Studio
          Issue Type: Brainstorming
          Components: studio-ldapbrowser
    Affects Versions: 2.0.0-M14
         Environment: Windows10-64Bit, 
            Reporter: Raju


Hi Team,

I am working new editor plug-in, where I need to edit Entry which is an object class groupOfUniqueNames. I able to fetch the entry object, but somehow add method is not saving the values. here is my use case step by step.

1) Getting an Entry object from the LDAP Server by using  SearchRunnable.search() method

 2) Getting an uniqueMemeber attribute from the Entry

3) getting the values of uniqueMember and adding new value to existing values , added back to Entry.

 
Code Snippet:
Method to retrieve Entry:
--------------------------------------------------------------------------------------------------
    @SuppressWarnings("unchecked")
	public static Entry getGroupEntry(NewEntryWizard ibr,String groupName) {   
    	Entry group=null;
		//ExportLdifRunnable exLdif = new ExportLdifRunnable("Test", ibr.getSelectedConnection(), new SearchParameter());
		StudioProgressMonitor dummyMonitor = new StudioProgressMonitor(new MemberOfStudioProgress());
		SearchParameter sp = new SearchParameter();
		String names[]=groupName.split(",");
		names=names[0].split("=");
		groupName=names[1];
		// set default parameter
		sp.setName(BrowserCoreMessages.model__quick_search_name);
		Dn parent = ibr.getSelectedEntry().getDn().getParent();
		System.out.println("Parent at Initial==="+ibr.getSelectedEntry().getDn().ROOT_DSE);
		while(!parent.isEmpty()) {
			parent=parent.getParent();
			System.out.println("Parent each Parent==="+parent);
		}
		sp.setSearchBase(parent);
		System.out.println("Parent at end==="+parent);
		sp.setReturningAttributes(ISearch.NO_ATTRIBUTES);
		sp.setAliasesDereferencingMethod(ibr.getSelectedConnection().getAliasesDereferencingMethod());
		sp.setReferralsHandlingMethod(ibr.getSelectedConnection().getReferralsHandlingMethod());
		sp.setCountLimit(ibr.getSelectedConnection().getCountLimit());
		sp.setTimeLimit(ibr.getSelectedConnection().getTimeLimit());
		sp.setFilter("(&(objectclass=groupOfUniqueNames)(cn="+ groupName+"))");
		
		
		sp.setScope(SearchScope.SUBTREE);

		StudioSearchResultEnumeration ne = SearchRunnable.search(ibr.getSelectedConnection(), sp, dummyMonitor);
		Entry ientry=null;
		try {
			while (ne.hasMore()) {
				ientry = ne.next().getEntry();
				//ientry=(IEntry)entry;
				
			}
		} catch (LdapException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
			System.out.println("Exception message"+e1.getMessage());
		}
		return ientry;
    }


Code Snippet edit the Entry:
-------------------------------------------------------------------------------------------

Entry groupEntry=LDAPSearchUtils.getGroupEntry(ocPage.wizard, groupName);
        	
        	 org.apache.directory.api.ldap.model.entry.Attribute uniAttribute =groupEntry.get("uniqueMember");
        	    
             try {
				uniAttribute.add(selectedEntry.getDn().getName());
			} catch (LdapInvalidAttributeValueException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
            
                      try {
				groupEntry.add(uniAttribute);
			} catch (LdapException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		} 

  I understand that the above code is able to add the new uniueMemeber values to groupOfUniqueNames Entry but not storing permanently. Could Please help me in modifying the entry values via back ground code.
  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org