1e394901aSAnna Dabrowska<?php 2e394901aSAnna Dabrowska 3910e7e15SAnna Dabrowskause dokuwiki\plugin\structpublish\meta\Assignments; 4910e7e15SAnna Dabrowska 5e394901aSAnna Dabrowskaclass helper_plugin_structpublish_db extends helper_plugin_struct_db 6e394901aSAnna Dabrowska{ 7939e6e3cSAnna Dabrowska 8e394901aSAnna Dabrowska /** 9910e7e15SAnna Dabrowska * Get list of all pages known to the plugin 10910e7e15SAnna Dabrowska * @return array 11910e7e15SAnna Dabrowska */ 12*126b0b8eSAnna Dabrowska public function getPages() 13910e7e15SAnna Dabrowska { 14*126b0b8eSAnna Dabrowska $sql = 'SELECT pid FROM titles'; 15*126b0b8eSAnna Dabrowska $res = $this->sqlite->query($sql); 16910e7e15SAnna Dabrowska $list = $this->sqlite->res2arr($res); 17910e7e15SAnna Dabrowska $this->sqlite->res_close($res); 18*126b0b8eSAnna Dabrowska return array_column($list, 'pid'); 19910e7e15SAnna Dabrowska } 20910e7e15SAnna Dabrowska 21910e7e15SAnna Dabrowska /** 22939e6e3cSAnna Dabrowska * Returns true if the current page is included in publishing workflows 23939e6e3cSAnna Dabrowska * 24939e6e3cSAnna Dabrowska * @return bool 25939e6e3cSAnna Dabrowska */ 26939e6e3cSAnna Dabrowska public function isPublishable() 27939e6e3cSAnna Dabrowska { 28939e6e3cSAnna Dabrowska global $ID; 29939e6e3cSAnna Dabrowska 30*126b0b8eSAnna Dabrowska $sql = 'SELECT pid FROM structpublish_assignments WHERE pid = ? AND assigned = 1'; 31939e6e3cSAnna Dabrowska $res = $this->sqlite->query($sql, $ID); 32939e6e3cSAnna Dabrowska if ($res && $this->sqlite->res2count($res)) { 33939e6e3cSAnna Dabrowska return true; 34939e6e3cSAnna Dabrowska } 35939e6e3cSAnna Dabrowska return false; 36939e6e3cSAnna Dabrowska } 372b546eccSAndreas Gohr 382b546eccSAndreas Gohr /** 392b546eccSAndreas Gohr * Check if the current user has the given roles on the current page 402b546eccSAndreas Gohr * 412b546eccSAndreas Gohr * @param string $pid The page ID to check access for 422b546eccSAndreas Gohr * @param string[] $roles Roles needed. Empty for any role 432b546eccSAndreas Gohr * @return bool 442b546eccSAndreas Gohr */ 452b546eccSAndreas Gohr public function checkAccess($pid, $roles = []) 462b546eccSAndreas Gohr { 472b546eccSAndreas Gohr return action_plugin_structpublish_sqlitefunction::userHasRole($pid, '', [], $roles); 482b546eccSAndreas Gohr } 492b546eccSAndreas Gohr 50e394901aSAnna Dabrowska} 51