MkfileCommandExecutor.java

package cn.bluejoe.elfinder.controller.executors;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.json.JSONObject;

import cn.bluejoe.elfinder.controller.executor.AbstractJsonCommandExecutor;
import cn.bluejoe.elfinder.controller.executor.FsItemEx;
import cn.bluejoe.elfinder.service.FsService;
import sk.iway.iwcm.Identity;
import sk.iway.iwcm.common.FileBrowserTools;
import sk.iway.iwcm.i18n.Prop;
import sk.iway.iwcm.users.UsersDB;

public class MkfileCommandExecutor extends AbstractJsonCommandExecutor
{
	@Override
	public void execute(FsService fsService, HttpServletRequest request, ServletContext servletContext, JSONObject json)
			throws Exception
	{
		String target = request.getParameter("target");
		String name = request.getParameter("name");
		Prop prop = Prop.getInstance(request);

		if (FileBrowserTools.hasForbiddenSymbol(name)) {
			json.put("error", prop.getText("components.elfinder.commands.error.banned_character"));
			return;
		}

		FsItemEx fsi = super.findItem(fsService, target);

		Identity user = sk.iway.iwcm.system.elfinder.FsService.getCurrentUser();
		if (user!=null && UsersDB.isFolderWritable(user.getWritableFolders(), fsi.getPath()))
		{
			FsItemEx dir = new FsItemEx(fsi, name);
			dir.createFile();
			json.put("added", new Object[] { getFsItemInfo(request, dir) });
		}
		else
		{
			json.put("error", prop.getText("components.elfinder.commands.mkfile.error", fsi.getPath()));
			json.put("added", new Object[] {});
		}

	}
}