public static function assignees() { $session_logic = Session_Logic::getInstance(); $database_users = Database_Users::getInstance(); $database_bibles = Database_Bibles::getInstance(); $myuser = $session_logic->currentUser(); $mylevel = $session_logic->currentLevel(); // Bibles the user has write access to. $mybibles = array(); $bibles = $database_bibles->getBibles(); foreach ($bibles as $bible) { if (Access_Bible::write($bible, $myuser)) { $mybibles[] = $bible; } } // This holds the assignees. $assignees = array(); // Process all users. $users = $database_users->getUsers(); sort($users); foreach ($users as $user) { // Assignees should have a level less than or equal to $mylevel. $level = $database_users->getUserLevel($user); if ($level <= $mylevel) { // Assignees should have access to $mybibles or no access to any Bible. // The admin has all users assigned. $userBibles = $database_users->getBibles4User($user); $biblesInCommon = array_intersect($userBibles, $mybibles); if (!empty($biblesInCommon) || empty($userBibles) || $mylevel >= Filter_Roles::ADMIN_LEVEL) { $assignees[] = $user; } } } return $assignees; }
$book = $books[0]; } else { $book = 0; } $ipc_focus->set($book, 1, 1); } } } $view = new Assets_View(__FILE__); // Active Bible, and check access. $bible = Access_Bible::clamp($database_config_user->getBible()); $view->view->bible = $bible; // Store the active Bible in the page's javascript. $view->view->navigationCode = Navigation_Passage::code($bible); // Write access? $write_access = Access_Bible::write($bible); $view->view->write_access = $write_access; $chapterLoaded = Locale_Translate::_("Loaded"); $chapterSaving = Locale_Translate::_("Saving..."); $chapterRetrying = Locale_Translate::_("Retrying..."); $write_access = $write_access ? "true" : "false"; $script = <<<EOD var editorChapterLoaded = '{$chapterLoaded}'; var editorChapterSaving = '{$chapterSaving}'; var editorChapterRetrying = '{$chapterRetrying}'; var editorWriteAccess = {$write_access}; EOD; $view->view->script = $script; $class = Filter_CustomCSS::getClass($bible); $font = $database_config_bible->getTextFont($bible); $direction = $database_config_bible->getTextDirection($bible);
if (in_array($destination, $bibles)) { $error_message = Locale_Translate::_("Cannot copy Bible because the destination Bible already exists."); } else { ignore_user_abort(true); set_time_limit(0); // User needs read access to the original. if (Access_Bible::read($origin)) { $database_bibles->createBible($destination); $books = $database_bibles->getBooks($origin); foreach ($books as $book) { $chapters = $database_bibles->getChapters($origin, $book); foreach ($chapters as $chapter) { $data = $database_bibles->getChapter($origin, $book, $chapter); Bible_Logic::storeChapter($destination, $book, $chapter, $data); } } $success_message = Locale_Translate::_("The Bible was copied."); // Check / grant access to destination Bible. if (!Access_Bible::write($destination)) { $database_users->grantAccess2Bible($session_logic->currentUser(), $destination); } } } } } @($view->view->success_message = $success_message); @($view->view->error_message = $error_message); $bibles = Access_Bible::bibles(); $view->view->bibles = $bibles; $view->render("manage.php"); Assets_Page::footer();
if (Access_Bible::write($bible)) { $dialog_list->add_row($bible, "&target={$bible}"); } } $dialog_list->run(); } else { $database_config_user->setTargetXrefBible($target); } } $source = $database_config_user->getSourceXrefBible(); if (!Access_Bible::read($source)) { $source = ""; $database_config_user->setSourceXrefBible($source); } $target = $database_config_user->getTargetXrefBible(); if (!Access_Bible::write($target)) { $target = ""; $database_config_user->setTargetXrefBible($target); } if ($source == "") { $source = "--"; } if ($target == "") { $target = "--"; } $view->view->source = $source; $view->view->target = $target; $view->view->success = $success; $view->view->error = $error; $view->render("index.php"); Assets_Page::footer();
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ require_once "../bootstrap/bootstrap.php"; page_access_level(Filter_Roles::MANAGER_LEVEL); $database_usfmresources = Database_UsfmResources::getInstance(); @($delete = $_GET['delete']); if (isset($delete)) { if (Access_Bible::write($delete)) { $database_usfmresources->deleteResource($delete); } else { Assets_Page::error(Locale_Translate::_("You do not have write access to this resource")); } } @($convert = $_GET['convert']); if (isset($convert)) { if (Access_Bible::write($convert)) { Tasks_Logic::queue(Tasks_Logic::PHP, array(__DIR__ . "/convert2bible.php", $convert)); Filter_Url::redirect("../journal/index.php"); die; } else { Assets_Page::error(Locale_Translate::_("Insufficient privileges")); } } $header = new Assets_Header(Locale_Translate::_("USFM Resources")); $header->jQueryUIOn("dialog"); $header->run(); $view = new Assets_View(__FILE__); $resources = $database_usfmresources->getResources(); $view->view->resources = $resources; $view->render("manage.php"); Assets_Page::footer();
$database_logs->log("Non existing user {$username}", Filter_Roles::MANAGER_LEVEL); } $pass_ok = $password == $database_users->getmd5($username); if (!$pass_ok) { $database_logs->log("Incorrect password {$password} for user {$username}", Filter_Roles::MANAGER_LEVEL); } if (!$user_ok || !$pass_ok) { // Unauthorized. http_response_code(401); die; } $session_logic->setUsername($username); $bookname = $database_books->getEnglishFromId($book); $database_logs->log("Client sent Bible data: {$bible} {$bookname} {$chapter}", Filter_Roles::MANAGER_LEVEL); // Check whether the user has write-access to the Bible. if (!Access_Bible::write($bible, $username)) { $message = "User {$username} does not have write access to Bible {$bible}"; $database_logs->log($message, Filter_Roles::MANAGER_LEVEL); echo $message; die; } // Check checksum. if ($checksum != Checksum_Logic::get($oldusfm . $newusfm)) { $message = "The received data is corrupted"; $database_logs->log($message, Filter_Roles::MANAGER_LEVEL); echo $message; die; } $serverusfm = $database_bibles->getChapter($bible, $book, $chapter); // Gather data for recording the changes made by the user, for the change notifications. $old_id = $database_bibles->getChapterId($bible, $book, $chapter);
} } // Identifier for this $bible. $bibleID = $database_bibles->getID($bible); // Create an email with the checking results for this $bible. $emailBody = array(); $hits = $database_check->getHits(); foreach ($hits as $hit) { if ($hit['bible'] == $bibleID) { $passage = Filter_Books::passagesDisplayInline(array(array($hit['book'], $hit['chapter'], $hit['verse']))); $data = Filter_Html::sanitize($hit['data']); $result = "<p>{$passage} {$data}</p>"; $emailBody[] = $result; } } // Send email to users with write access to the Bible and a subscription to the notification. if (count($emailBody) > 0) { $subject = Locale_Translate::_("Bible Checks") . " " . $bible; $emailBody = implode("\n", $emailBody); $users = $database_users->getUsers(); foreach ($users as $user) { if ($database_config_user->getUserBibleChecksNotification($user)) { if (Access_Bible::write($bible, $user)) { if (!Filter_Client::enabled()) { $database_mail->send($user, $subject, $emailBody); } } } } } $database_logs->log("Check {$bible}: Complete", Filter_Roles::TRANSLATOR_LEVEL);
if (isset($mail)) { Sprint_Logic::burndown($bible, true); $view->view->success = Locale_Translate::_("The information was mailed to the subscribers"); // Give the burndown logic time to update the sprint history, // so the page will display the updated burndown chart. sleep(2); } $header->run(); @($bible = $_GET['bible']); if (isset($bible)) { if ($bible == "") { $dialog_list = new Dialog_List2(Locale_Translate::_("Select which Bible to display the Sprint for")); $bibles = Access_Bible::bibles(); foreach ($bibles as $bible) { // Select from Bibles the user has write access to. if (Access_Bible::write($bible)) { $dialog_list->add_row($bible, "&bible={$bible}"); } } $dialog_list->run(); } else { $database_config_user->setBible($bible); } } $bible = Access_Bible::clamp($database_config_user->getBible()); @($id = $_GET['id']); @($moveback = $_GET['moveback']); if (isset($moveback)) { $time = mktime(0, 0, 0, $month - 1, 1, $year); $database_sprint->updateMonthYear($id, date("n", $time), date("Y", $time)); $view->view->success = Locale_Translate::_("The task was moved to the previous sprint");