Script - Corregir la seguridad en nodos personales
El script cambia la seguridad de forma recursiva en todos los hijos de los nodos okm:personal, okm:trash y okm:mail, eliminando toda la seguridad anterior y asignando todos los permisos al propietario de la carpeta (el nombre de la carpeta identifica al usuario).
import com.openkm.api.OKMAuth;import com.openkm.api.OKMFolder;import com.openkm.bean.Folder;import java.util.*;import com.openkm.util.PathUtils;import com.openkm.bean.Permission;
public void changeSecurity(String path){ for(Folder fld : OKMFolder.getInstance().getChildren(null, path)) { String userId = PathUtils.getName(fld.getPath());
Map revokeRoles = OKMAuth.getInstance().getGrantedRoles(null, fld.getPath()); Map revokeUsers = OKMAuth.getInstance().getGrantedUsers(null, fld.getPath()); Map grantUsers = new HashMap(); grantUsers.put(userId, Permission.ALL_GRANTS); revokeUsers.remove(userId); OKMAuth.getInstance().changeSecurity(null, fld.getPath(), grantUsers, revokeUsers, new HashMap(), revokeRoles, true);
print("Done " + path + "<br />"); }}
changeSecurity("/okm:personal");changeSecurity("/okm:trash");changeSecurity("/okm:mail");