/** * Deletes a layout * @param <type> $layoutId * @return <type> */ public function Delete($templateId) { try { $dbh = PDOConnect::init(); // Remove any permissions Kit::ClassLoader('templategroupsecurity'); $security = new TemplateGroupSecurity($this->db); $security->UnlinkAll($templateId); // Remove the Template $sth = $dbh->prepare('DELETE FROM template WHERE TemplateId = :templateid'); $sth->execute(array('templateid' => $templateId)); return true; } catch (Exception $e) { Debug::LogEntry('error', $e->getMessage()); if (!$this->IsError()) { $this->SetError(25105, __('Unable to delete template')); } return false; } }
/** * Set this templates permissions */ public function Permissions() { // Check the token if (!Kit::CheckToken()) { trigger_error('Token does not match', E_USER_ERROR); } $db =& $this->db; $user =& $this->user; $response = new ResponseManager(); $templateId = Kit::GetParam('templateid', _POST, _INT); if ($templateId == 0) { trigger_error(__('No template selected'), E_USER_ERROR); } // Is this user allowed to delete this template? $auth = $this->user->TemplateAuth($templateId, true); $groupIds = Kit::GetParam('groupids', _POST, _ARRAY); // Unlink all Kit::ClassLoader('templategroupsecurity'); $security = new TemplateGroupSecurity($db); if (!$security->UnlinkAll($templateId)) { trigger_error(__('Unable to set permissions'), E_USER_ERROR); } // Some assignments for the loop $lastGroupId = 0; $first = true; $view = 0; $edit = 0; $del = 0; // List of groupIds with view, edit and del assignments foreach ($groupIds as $groupPermission) { $groupPermission = explode('_', $groupPermission); $groupId = $groupPermission[0]; if ($first) { // First time through $first = false; $lastGroupId = $groupId; } if ($groupId != $lastGroupId) { // The groupId has changed, so we need to write the current settings to the db. // Link new permissions if (!$security->Link($templateId, $lastGroupId, $view, $edit, $del)) { trigger_error(__('Unable to set permissions'), E_USER_ERROR); } // Reset $lastGroupId = $groupId; $view = 0; $edit = 0; $del = 0; } switch ($groupPermission[1]) { case 'view': $view = 1; break; case 'edit': $edit = 1; break; case 'del': $del = 1; break; } } // Need to do the last one if (!$first) { if (!$security->Link($templateId, $lastGroupId, $view, $edit, $del)) { trigger_error(__('Unable to set permissions'), E_USER_ERROR); } } $response->SetFormSubmitResponse(__('Permissions Changed')); $response->Respond(); }