1
0
Fork 0
mirror of synced 2024-06-02 10:54:44 +12:00
appwrite/app/controllers/web/console.php

284 lines
9.2 KiB
PHP
Raw Normal View History

2019-05-09 18:54:39 +12:00
<?php
2019-12-17 08:35:33 +13:00
include_once __DIR__ . '/../shared/web.php';
2019-05-09 18:54:39 +12:00
2020-03-29 01:42:16 +13:00
global $utopia, $response, $request, $layout, $projectDB;
2019-05-09 18:54:39 +12:00
use Utopia\View;
2020-03-29 01:42:16 +13:00
use Utopia\Config\Config;
2020-02-23 21:58:30 +13:00
use Utopia\Domains\Domain;
use Appwrite\Database\Database;
2020-04-21 06:47:26 +12:00
use Appwrite\Database\Validator\Authorization;
use Appwrite\Database\Validator\UID;
use Appwrite\Storage\Storage;
2020-04-21 06:47:26 +12:00
use Utopia\Validator\Numeric;
use Utopia\Validator\Range;
use Utopia\Validator\Text;
2019-05-09 18:54:39 +12:00
$utopia->init(function () use ($layout, $utopia) {
$layout
->setParam('analytics', 'UA-26264668-5')
;
});
2020-03-29 01:42:16 +13:00
$utopia->shutdown(function () use ($response, $request, $layout) {
2019-12-17 08:35:33 +13:00
$header = new View(__DIR__.'/../../views/console/comps/header.phtml');
$footer = new View(__DIR__.'/../../views/console/comps/footer.phtml');
2019-05-09 18:54:39 +12:00
2019-08-24 19:30:12 +12:00
$footer
->setParam('home', $request->getServer('_APP_HOME', ''))
2020-03-29 01:42:16 +13:00
->setParam('version', Config::getParam('version'))
2019-08-24 19:30:12 +12:00
;
2019-05-09 18:54:39 +12:00
$layout
->setParam('header', [$header])
->setParam('footer', [$footer])
;
$response->send($layout->render());
});
$utopia->get('/error/:code')
->desc('Error page')
->label('permission', 'public')
->label('scope', 'home')
->param('code', null, new \Utopia\Validator\Numeric(), 'Valid status code number', false)
->action(function ($code) use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/error.phtml');
2019-05-09 18:54:39 +12:00
$page
->setParam('code', $code)
;
$layout
->setParam('title', APP_NAME.' - Error')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
$utopia->get('/console')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout, $request) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/index.phtml');
2019-05-09 18:54:39 +12:00
2019-08-24 19:30:12 +12:00
$page
->setParam('home', $request->getServer('_APP_HOME', ''))
;
2019-05-09 18:54:39 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Console')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
$utopia->get('/console/account')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/account/index.phtml');
2019-05-09 18:54:39 +12:00
2019-12-17 08:35:33 +13:00
$cc = new View(__DIR__.'/../../views/console/forms/credit-card.phtml');
2019-05-09 18:54:39 +12:00
$page
->setParam('cc', $cc)
;
$layout
2019-10-01 17:57:41 +13:00
->setParam('title', 'Account - '.APP_NAME)
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
$utopia->get('/console/notifications')
->desc('Platform console notifications')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/v1/console/notifications/index.phtml');
2019-05-09 18:54:39 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Notifications')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
$utopia->get('/console/home')
->desc('Platform console project home')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/home/index.phtml');
2019-05-09 18:54:39 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Console')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
$utopia->get('/console/settings')
->desc('Platform console project settings')
->label('permission', 'public')
->label('scope', 'console')
2020-02-23 21:58:30 +13:00
->action(function () use ($request, $layout) {
2020-03-01 19:33:19 +13:00
$target = new Domain($request->getServer('_APP_DOMAIN_TARGET', ''));
2020-02-23 21:58:30 +13:00
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/settings/index.phtml');
2019-05-09 18:54:39 +12:00
2020-02-23 21:58:30 +13:00
$page
2020-02-25 01:55:42 +13:00
->setParam('customDomainsEnabled', ($target->isKnown() && !$target->isTest()))
->setParam('customDomainsTarget', $target->get())
2020-02-23 21:58:30 +13:00
;
2019-05-09 18:54:39 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Settings')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
2019-08-05 16:47:52 +12:00
$utopia->get('/console/webhooks')
->desc('Platform console project webhooks')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/webhooks/index.phtml');
2019-08-05 16:47:52 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Webhooks')
2019-08-05 16:47:52 +12:00
->setParam('body', $page);
});
$utopia->get('/console/keys')
->desc('Platform console project keys')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout) {
2019-12-16 18:11:41 +13:00
$scopes = include __DIR__.'/../../../app/config/scopes.php';
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/keys/index.phtml');
2019-08-05 16:47:52 +12:00
2019-12-16 18:11:41 +13:00
$page->setParam('scopes', $scopes);
2019-08-05 16:47:52 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - API Keys')
2019-08-05 16:47:52 +12:00
->setParam('body', $page);
});
$utopia->get('/console/tasks')
->desc('Platform console project tasks')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/tasks/index.phtml');
2019-08-05 16:47:52 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Tasks')
2019-08-05 16:47:52 +12:00
->setParam('body', $page);
});
2019-05-09 18:54:39 +12:00
$utopia->get('/console/database')
->desc('Platform console project settings')
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/database/index.phtml');
2019-05-09 18:54:39 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Database')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
2019-08-07 01:57:12 +12:00
$utopia->get('/console/database/collection')
2020-04-21 06:47:26 +12:00
->desc('Platform console project database collection')
2019-08-07 01:57:12 +12:00
->label('permission', 'public')
->label('scope', 'console')
2020-03-09 08:27:21 +13:00
->action(function () use ($layout, $projectDB) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/database/collection.phtml');
2019-08-07 01:57:12 +12:00
$layout
2020-03-17 07:41:56 +13:00
->setParam('title', APP_NAME.' - Database Collection')
->setParam('body', $page);
});
$utopia->get('/console/database/document')
2020-04-21 06:47:26 +12:00
->desc('Platform console project database document')
2020-03-17 07:41:56 +13:00
->label('permission', 'public')
->label('scope', 'console')
->action(function () use ($layout, $projectDB) {
$page = new View(__DIR__.'/../../views/console/database/document.phtml');
$layout
->setParam('title', APP_NAME.' - Database Document')
2019-08-07 01:57:12 +12:00
->setParam('body', $page);
});
2020-04-21 06:47:26 +12:00
$utopia->get('/console/database/form')
->desc('Platform console project database form')
->label('permission', 'public')
->label('scope', 'console')
->param('collectionId', '', function () { return new UID(); }, 'Collection unique ID.')
->param('namespace', 'project-document', function () { return new Text(256); }, 'Namespace for vars.', true)
->param('key', 'data', function () { return new Text(256); }, 'Object main key.', true)
->param('parent', 1, function () { return new Range(0, 1); }, 'Is parent?.', true)
->action(function ($collectionId, $namespace, $key, $parent) use ($layout, $projectDB) {
Authorization::disable();
$collection = $projectDB->getDocument($collectionId, false);
Authorization::reset();
if (empty($collection->getId()) || Database::SYSTEM_COLLECTION_COLLECTIONS != $collection->getCollection()) {
throw new Exception('Collection not found', 404);
}
$page = new View(__DIR__.'/../../views/console/database/form.phtml');
$page
->setParam('collection', $collection)
->setParam('namespace', $namespace)
->setParam('key', $key)
->setParam('parent', $parent)
;
$layout
2020-04-21 20:11:47 +12:00
->setPath(__DIR__.'/../../views/layouts/strip.phtml')
2020-04-21 06:47:26 +12:00
->setParam('title', APP_NAME.' - Database Form')
->setParam('body', $page);
});
2019-05-09 18:54:39 +12:00
$utopia->get('/console/storage')
->desc('Platform console project settings')
->label('permission', 'public')
->label('scope', 'console')
2019-10-13 10:53:03 +13:00
->action(function () use ($request, $layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/storage/index.phtml');
2019-10-13 10:53:03 +13:00
$page
->setParam('home', $request->getServer('_APP_HOME', 0))
->setParam('fileLimit', $request->getServer('_APP_STORAGE_LIMIT', 0))
->setParam('fileLimitHuman', Storage::human($request->getServer('_APP_STORAGE_LIMIT', 0)))
2019-10-13 10:53:03 +13:00
;
2019-05-09 18:54:39 +12:00
$layout
2019-09-27 06:47:48 +12:00
->setParam('title', APP_NAME.' - Storage')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
$utopia->get('/console/users')
->desc('Platform console project settings')
->label('permission', 'public')
->label('scope', 'console')
2020-03-29 01:42:16 +13:00
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/users/index.phtml');
2019-05-09 18:54:39 +12:00
2020-03-29 01:42:16 +13:00
$page->setParam('providers', Config::getParam('providers'));
2019-05-09 18:54:39 +12:00
$layout
2019-09-29 08:47:01 +13:00
->setParam('title', APP_NAME.' - Users')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});
$utopia->get('/console/users/view')
->desc('Platform console project user')
->label('permission', 'public')
->label('scope', 'console')
2020-03-29 01:42:16 +13:00
->action(function () use ($layout) {
2019-12-17 08:35:33 +13:00
$page = new View(__DIR__.'/../../views/console/users/view.phtml');
2019-05-09 18:54:39 +12:00
$layout
2019-09-29 08:47:01 +13:00
->setParam('title', APP_NAME.' - View User')
2019-05-09 18:54:39 +12:00
->setParam('body', $page);
});