Exemplo n.º 1
0
	function exec($args, $stdin, &$stdout, &$stderr, &$system)
	{
		if (!empty($args))
		{
			list($rights, $path) = explode(" ", $args, 2);
			
			if ($path{0} != "/")
				$path = $_SESSION['murrix']['path']."/$path";
				
			$node_id = getNode($path);
			
			if ($node_id <= 0)
			{
				$stderr = ucf(i18n("no such path"));
				return true;
			}
			else
				$object = new mObject($node_id);
			
			if (!(isAdmin() || $object->hasRight("write")))
			{
				$stderr = ucf(i18n("not enough rights to change rights"));
				return true;
			}
			
			$object->setRights($rights);
		
			if ($object->saveCurrent())
				$stdout = ucf(i18n("changed rights successfully"));
			else
				$stderr = ucf(i18n("failed to change rights"));
		}
		else
		{
			$stdout = "Usage: chmod [rightstring] [path]\n";
			$stdout .= "Example: chmod rwcrwcrwc /root";
		}
		
		return true;
	}
Exemplo n.º 2
0
	function actionSave(&$system, $args)
	{
		$bError = false;
		if (empty($args['name']))
		{
			$system->addAlert(ucf(i18n("please enter a name")));
			$bError = true;
		}

		if (!(strpos($args['name'], "\\") === false) || !(strpos($args['name'], "/") === false) || !(strpos($args['name'], "+") === false))
		{
			$system->addAlert(ucf(i18n("you can not use '\\', '/' or '+' in the name")));
			$bError = true;
		}

		if (!$bError)
		{
			$object = new mObject($this->getNodeId($args));
			if ($object->getNodeId() > 0)
			{
				if ($object->hasRight("write"))
				{
					$object->name = trim($args['name']);
					$object->icon = trim($args['icon']);
					
					$newlang = ($object->getLanguage() != trim($args['language']));
					$object->language = trim($args['language']);
	
					$vars = $object->getVars();
	
					foreach ($vars as $var)
					{
						$key = "v".$var->id;
						
						$value = (isset($args[$key]) ? $args[$key] : (isset($args[$var->id]) ? $args[$var->id] : ""));
						
						if (empty($value) && $var->getRequired() && $var->getType() != "boolean")
						{
							$system->addAlert(utf8e(ucf(str_replace("_", " ", i18n($var->getName(true))))." ".i18n("is a required field")));
							return;
						}
						
						$object->setVarValue($var->name, $value);
					}
					
					if ($args['newversion'] == "on" || $newlang)
						$ret = $object->save();
					else
						$ret = $object->saveCurrent();
						
					if ($ret)
					{
						$system->addRedirect("exec=show&node_id=".$object->getNodeId());

						clearNodeFileCache($object->getNodeId());
						
						$links = $object->getLinks();
						foreach ($links as $link)
						{
							if ($link['type'] == "sub")
								clearNodeFileCache($link['remote_id']);
						}
					}
					else
					{
						$message = "Operation unsuccessfull.<br/>";
						$message .= "Error output:<br/>";
						$message .= $object->getLastError();
						$system->addAlert($message);
					}
				}
			}
		}
	}