Ir al contenido
Otras versiones

Cargando…

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");