/** * This method is called during property updates. * * Here we check if a user attempted to update a protected property and * ensure that the process fails if this is the case. * * @param string $path * @param PropPatch $propPatch * @return void */ function propPatchProtectedPropertyCheck($path, PropPatch $propPatch) { // Comparing the mutation list to the list of propetected properties. $mutations = $propPatch->getMutations(); $protected = array_intersect($this->server->protectedProperties, array_keys($mutations)); if ($protected) { $propPatch->setResultCode($protected, 403); } }
function propPatch(PropPatch $propPatch) { $mutations = $propPatch->getMutations(); // If this is a shared calendar, the user can only change the enabled property, to hide it. if (isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal']) && (sizeof($mutations) !== 1 || !isset($mutations['{http://owncloud.org/ns}calendar-enabled']))) { throw new Forbidden(); } parent::propPatch($propPatch); }