Difference between revisions of "Knowledge:Script Utilities"

From OpenKM Documentation
Jump to: navigation, search
(LDAP connection test)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=== Get principals ===
 
=== Get principals ===
<source type="lang">
+
<source lang="java">
 
import com.openkm.spring.PrincipalUtils;
 
import com.openkm.spring.PrincipalUtils;
 +
import java.util.*;
  
 +
HashSet roles = PrincipalUtils.getRoles();
 +
for (Iterator it = roles.iterator(); it.hasNext();) {
 +
    String role = (String) it.next();
 +
    print("{"+role+"}<br/>");
 +
}
 +
 
print(PrincipalUtils.getRoles());
 
print(PrincipalUtils.getRoles());
 +
</source>
 +
 +
== List missing datastore document ==
 +
<source lang="java">
 +
import com.openkm.module.db.stuff.*;
 +
import com.openkm.dao.bean.*;
 +
import com.openkm.dao.*;
 +
 +
for (NodeDocumentVersion ndv : NodeDocumentVersionDAO.getInstance().findAll()) {
 +
    String verUuid = ndv.getUuid();
 +
    File file = FsDataStore.resolveFile(verUuid);
 +
   
 +
    if (!file.exists()) {
 +
        String docUuid = ndv.getParent();
 +
        String docPath = NodeBaseDAO.getInstance().getPathFromUuid(docUuid);
 +
        print("File: " + file + "<br/>");
 +
        print("Path: " + docPath + "<br/>");
 +
    }
 +
}
 +
</source>
 +
 +
== Force text extraction from a folder ==
 +
<source lang="java">
 +
import com.openkm.dao.bean.*;
 +
import com.openkm.dao.*;
 +
 +
void changeNodes(String parentUuid) {
 +
    for (NodeFolder nFld : NodeFolderDAO.getInstance().findByParent(parentUuid)) {
 +
        print("Folder: " + nFld.getUuid() + "<br/>");
 +
        changeNodes(nFld.getUuid());
 +
    }
 +
   
 +
    for (NodeDocument nDoc : NodeDocumentDAO.getInstance().findByParent(parentUuid)) {
 +
        print("Document: " + nDoc.getUuid() + "<br/>");
 +
        NodeDocumentDAO.getInstance().resetPendingExtractionFlag(nDoc.getUuid());
 +
    }
 +
}
 +
 +
changeNodes("folder-uuid");
 +
</source>
 +
 +
== LDAP connection test ==
 +
<source lang="java">
 +
import java.util.*;
 +
import javax.naming.*;
 +
import javax.naming.directory.*;
 +
 +
try {
 +
    Hashtable env = new Hashtable();
 +
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
 +
    env.put(Context.PROVIDER_URL, "ldap://192.168.100.5");
 +
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
 +
    env.put(Context.SECURITY_PRINCIPAL, "CN=openkm,CN=Users,DC=possehlelectronics,DC=nl");
 +
    env.put(Context.SECURITY_CREDENTIALS, "****"); 
 +
 +
    DirContext ctx = new InitialDirContext(env);
 +
   
 +
    print ("autentificado<br/>");
 +
   
 +
    List searchBases = new ArrayList();
 +
    searchBases.add("cn=Users,DC=possehlelectronics,DC=nl");
 +
    String searchFilter = "(&(objectClass=person)(|(memberOf=CN=ROLE_ADMIN,OU=Groups,DC=possehlelectronics,DC=nl)(memberOf=CN=ROLE_USER,OU=Groups,DC=possehlelectronics,DC=nl)))";
 +
    String attribute = "cn";
 +
   
 +
    SearchControls searchCtls = new SearchControls();
 +
    searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
 +
   
 +
    for (String searchBase : searchBases) {
 +
            NamingEnumeration results = ctx.search(searchBase, searchFilter, searchCtls);
 +
           
 +
            while (results.hasMore()) {
 +
                    print("Resultado:");
 +
                    SearchResult searchResult = (SearchResult) results.next();
 +
                    Attributes attributes = searchResult.getAttributes();
 +
                   
 +
                    if (attribute.equals("")) {
 +
                            StringBuilder sb = new StringBuilder();
 +
                           
 +
                            for (NamingEnumeration ne = attributes.getAll(); ne.hasMore();) {
 +
                                    Attribute attr = (Attribute) ne.nextElement();
 +
                                    sb.append(attr.toString());
 +
                                    sb.append("\n");
 +
                            }
 +
                           
 +
                            al.add(sb.toString());
 +
                        print(sb.toString()+"<br/>");
 +
                    } else {
 +
                            Attribute attrib = attributes.get(attribute);
 +
                           
 +
                            if (attrib != null) {
 +
                                    String item = (String) attrib.get();
 +
                                    print("Item:"+item+"<br/>");
 +
                            }
 +
                    }
 +
            }
 +
    }
 +
 +
    ctx.close();
 +
 +
  } catch(NamingException ne) {
 +
    print("Error authenticating user:");
 +
    print(ne.getMessage());
 +
}
 
</source>
 
</source>

Latest revision as of 12:53, 10 December 2012

Get principals

import com.openkm.spring.PrincipalUtils;
import java.util.*;

HashSet roles = PrincipalUtils.getRoles();
for (Iterator it = roles.iterator(); it.hasNext();) {
    String role = (String) it.next();
    print("{"+role+"}<br/>");
}
 
print(PrincipalUtils.getRoles());

List missing datastore document

import com.openkm.module.db.stuff.*;
import com.openkm.dao.bean.*;
import com.openkm.dao.*;

for (NodeDocumentVersion ndv : NodeDocumentVersionDAO.getInstance().findAll()) {
    String verUuid = ndv.getUuid();
    File file = FsDataStore.resolveFile(verUuid);
    
    if (!file.exists()) {
        String docUuid = ndv.getParent();
        String docPath = NodeBaseDAO.getInstance().getPathFromUuid(docUuid);
        print("File: " + file + "<br/>");
        print("Path: " + docPath + "<br/>");
    }
}

Force text extraction from a folder

import com.openkm.dao.bean.*;
import com.openkm.dao.*;

void changeNodes(String parentUuid) {
    for (NodeFolder nFld : NodeFolderDAO.getInstance().findByParent(parentUuid)) {
        print("Folder: " + nFld.getUuid() + "<br/>");
        changeNodes(nFld.getUuid());
    }
    
    for (NodeDocument nDoc : NodeDocumentDAO.getInstance().findByParent(parentUuid)) {
        print("Document: " + nDoc.getUuid() + "<br/>");
        NodeDocumentDAO.getInstance().resetPendingExtractionFlag(nDoc.getUuid());
    }
}

changeNodes("folder-uuid");

LDAP connection test

import java.util.*;
import javax.naming.*;
import javax.naming.directory.*;

try {
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "ldap://192.168.100.5");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "CN=openkm,CN=Users,DC=possehlelectronics,DC=nl"); 
    env.put(Context.SECURITY_CREDENTIALS, "****");   

    DirContext ctx = new InitialDirContext(env);
    
    print ("autentificado<br/>");
    
    List searchBases = new ArrayList();
    searchBases.add("cn=Users,DC=possehlelectronics,DC=nl");
    String searchFilter = "(&(objectClass=person)(|(memberOf=CN=ROLE_ADMIN,OU=Groups,DC=possehlelectronics,DC=nl)(memberOf=CN=ROLE_USER,OU=Groups,DC=possehlelectronics,DC=nl)))";
    String attribute = "cn";
    
    SearchControls searchCtls = new SearchControls();
    searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    
    for (String searchBase : searchBases) {
            NamingEnumeration results = ctx.search(searchBase, searchFilter, searchCtls);
            
            while (results.hasMore()) {
                    print("Resultado:");
                    SearchResult searchResult = (SearchResult) results.next();
                    Attributes attributes = searchResult.getAttributes();
                    
                    if (attribute.equals("")) {
                            StringBuilder sb = new StringBuilder();
                            
                            for (NamingEnumeration ne = attributes.getAll(); ne.hasMore();) {
                                    Attribute attr = (Attribute) ne.nextElement();
                                    sb.append(attr.toString());
                                    sb.append("\n");
                            }
                            
                            al.add(sb.toString());
                        print(sb.toString()+"<br/>");
                    } else {
                            Attribute attrib = attributes.get(attribute);
                            
                            if (attrib != null) {
                                    String item = (String) attrib.get();
                                    print("Item:"+item+"<br/>");
                            }
                    }
            }
    }

    ctx.close();

  } catch(NamingException ne) {
    print("Error authenticating user:");
    print(ne.getMessage());
}