diff --git a/server/controllers/article/add-topic.php b/server/controllers/article/add-topic.php index a13f7250..9bfe8d99 100644 --- a/server/controllers/article/add-topic.php +++ b/server/controllers/article/add-topic.php @@ -25,6 +25,10 @@ class AddTopicController extends Controller { 'iconColor' => Controller::request('iconColor') ]); + $staff = Controller::getLoggedUser(); + + Log::createLog('ADD_TOPIC', $topic->name); + Response::respondSuccess([ 'topicId' => $topic->store() ]); diff --git a/server/controllers/article/add.php b/server/controllers/article/add.php index f9701b32..79e6d469 100644 --- a/server/controllers/article/add.php +++ b/server/controllers/article/add.php @@ -38,6 +38,10 @@ class AddArticleController extends Controller { $topic->ownArticleList->add($article); $topic->store(); + $staff = Controller::getLoggedUser(); + + Log::createLog('ADD_ARTICLE', $article->title); + Response::respondSuccess([ 'articleId' => $article->store() ]); diff --git a/server/controllers/article/delete-topic.php b/server/controllers/article/delete-topic.php index 0796bdf6..61f372f6 100644 --- a/server/controllers/article/delete-topic.php +++ b/server/controllers/article/delete-topic.php @@ -19,8 +19,10 @@ class DeleteTopicController extends Controller { public function handler() { $topic = Topic::getDataStore(Controller::request('topicId')); - $topic->delete(); + Log::createLog('DELETE_TOPIC', $topic->name); + + $topic->delete(); Response::respondSuccess(); } } \ No newline at end of file diff --git a/server/controllers/article/delete.php b/server/controllers/article/delete.php index 43025631..a3aafb7c 100644 --- a/server/controllers/article/delete.php +++ b/server/controllers/article/delete.php @@ -19,6 +19,8 @@ class DeleteArticleController extends Controller { public function handler() { $article = Article::getDataStore(Controller::request('articleId')); + Log::createLog('DELETE_ARTICLE', $article->title); + $article->delete(); Response::respondSuccess(); diff --git a/server/controllers/article/edit.php b/server/controllers/article/edit.php index d90bf473..86d78a4a 100644 --- a/server/controllers/article/edit.php +++ b/server/controllers/article/edit.php @@ -46,6 +46,9 @@ class EditArticleController extends Controller { $article->lastEdited = Date::getCurrentDate(); $article->store(); + + Log::createLog('EDIT_ARTICLE', $article->title); + Response::respondSuccess(); } } \ No newline at end of file diff --git a/server/controllers/staff/add.php b/server/controllers/staff/add.php index df05beeb..83610118 100644 --- a/server/controllers/staff/add.php +++ b/server/controllers/staff/add.php @@ -55,6 +55,9 @@ class AddStaffController extends Controller { ]); + $staff = Controller::getLoggedUser(); + Log::createLog('ADD_STAFF', $this->name); + $this->addOwner(); Response::respondSuccess([ diff --git a/server/controllers/system/add-department.php b/server/controllers/system/add-department.php index b8ca5d4d..9f13e7d7 100644 --- a/server/controllers/system/add-department.php +++ b/server/controllers/system/add-department.php @@ -23,11 +23,11 @@ class AddDepartmentController extends Controller { $departmentInstance->setProperties([ 'name' => $name, - ]); - $departmentInstance->store(); + Log::createLog('ADD_DEPARTMENT', $name); + Response::respondSuccess(); } diff --git a/server/controllers/system/delete-department.php b/server/controllers/system/delete-department.php index 41c0e7e6..0da23a80 100644 --- a/server/controllers/system/delete-department.php +++ b/server/controllers/system/delete-department.php @@ -37,6 +37,8 @@ class DeleteDepartmentController extends Controller { $departmentInstance = Department::getDataStore($this->departmentId); $departmentInstance->delete(); + Log::createLog('DELETE_DEPARTMENT', $departmentInstance->name); + Response::respondSuccess(); } diff --git a/server/controllers/system/edit-department.php b/server/controllers/system/edit-department.php index e6d420b1..30679fbc 100644 --- a/server/controllers/system/edit-department.php +++ b/server/controllers/system/edit-department.php @@ -32,6 +32,8 @@ class EditDepartmentController extends Controller { $departmentInstance->store(); + Log::createLog('EDIT_DEPARTMENT', $departmentInstance->name); + Response::respondSuccess(); } diff --git a/server/controllers/system/edit-settings.php b/server/controllers/system/edit-settings.php index 7a4a41d9..7432e040 100644 --- a/server/controllers/system/edit-settings.php +++ b/server/controllers/system/edit-settings.php @@ -40,6 +40,9 @@ class EditSettingsController extends Controller { if(Controller::request('allowedLanguages') || Controller::request('supportedLanguages')) { $this->handleLanguages(); } + + Log::createLog('EDIT_SETTINGS', null); + Response::respondSuccess(); } diff --git a/server/controllers/system/get-logs.php b/server/controllers/system/get-logs.php new file mode 100644 index 00000000..f459f9bf --- /dev/null +++ b/server/controllers/system/get-logs.php @@ -0,0 +1,22 @@ + 'staff_1', + 'requestData' => [ + 'page' => [ + 'validation' => DataValidator::numeric(), + 'error' => ERRORS::INVALID_PAGE + ] + ] + ]; + } + + public function handler() { + $page =Controller::request('page'); + } +} \ No newline at end of file diff --git a/server/controllers/ticket/add-custom-response.php b/server/controllers/ticket/add-custom-response.php index 4ba7b3fe..68af88f7 100644 --- a/server/controllers/ticket/add-custom-response.php +++ b/server/controllers/ticket/add-custom-response.php @@ -34,6 +34,8 @@ class AddCustomResponseController extends Controller { ]); $customResponse->store(); + Log::createLog('ADD_CUSTOM_RESPONSE', null); + Response::respondSuccess(); } } \ No newline at end of file diff --git a/server/controllers/ticket/delete-custom-response.php b/server/controllers/ticket/delete-custom-response.php index 87608117..4ab5ca8b 100644 --- a/server/controllers/ticket/delete-custom-response.php +++ b/server/controllers/ticket/delete-custom-response.php @@ -21,6 +21,8 @@ class DeleteCustomResponseController extends Controller { $customResponse = CustomResponse::getDataStore(Controller::request('id')); $customResponse->delete(); + Log::createLog('DELETE_CUSTOM_RESPONSE', null); + Response::respondSuccess(); } } \ No newline at end of file diff --git a/server/controllers/user/ban.php b/server/controllers/user/ban.php index 699686d9..650c4a73 100644 --- a/server/controllers/user/ban.php +++ b/server/controllers/user/ban.php @@ -29,6 +29,8 @@ class BanUserController extends Controller { $ban->store(); + Log::createLog('BAN_USER', $email); + Response::respondSuccess(); } else { Response::respondError(ERRORS::ALREADY_BANNED); diff --git a/server/controllers/user/delete.php b/server/controllers/user/delete.php index 6240218a..f668728f 100644 --- a/server/controllers/user/delete.php +++ b/server/controllers/user/delete.php @@ -21,7 +21,10 @@ class DeleteUserController extends Controller { $userId = Controller::request('userId'); $user = User::getDataStore($userId); + Log::createLog('DELETE_USER', $user->name); + $user->delete(); + Response::respondSuccess(); } } \ No newline at end of file diff --git a/server/controllers/user/signup.php b/server/controllers/user/signup.php index b073fab1..0108f292 100644 --- a/server/controllers/user/signup.php +++ b/server/controllers/user/signup.php @@ -57,7 +57,8 @@ class SignUpController extends Controller { 'userId' => $userId, 'userEmail' => $this->userEmail ]); - + + Log::createLog('SIGNUP', null, User::getDataStore($userId)); } public function storeRequestData() { diff --git a/server/controllers/user/un-ban.php b/server/controllers/user/un-ban.php index 15f6f18b..30a83e02 100644 --- a/server/controllers/user/un-ban.php +++ b/server/controllers/user/un-ban.php @@ -24,6 +24,9 @@ class UnBanUserController extends Controller { Response::respondError(ERRORS::INVALID_EMAIL); } else { $banRow->delete(); + + Log::createLog('UN_BAN_USER', $email); + Response::respondSuccess(); } diff --git a/server/models/Log.php b/server/models/Log.php new file mode 100644 index 00000000..e3abd90f --- /dev/null +++ b/server/models/Log.php @@ -0,0 +1,29 @@ +setProperties(array( + 'type' => $type, + 'author' => (!$author->isNull() && !$author->staff) ? $author : null, + 'authorStaff' => (!$author->isNull() && $author->staff) ? $author : null, + 'to' => $to, + )); + $log->store(); + } +} \ No newline at end of file diff --git a/tests/system/edit-settings.rb b/tests/system/edit-settings.rb index 75373456..ca57a4b5 100644 --- a/tests/system/edit-settings.rb +++ b/tests/system/edit-settings.rb @@ -95,4 +95,47 @@ describe'system/edit-settings' do request('/user/logout') end + + it 'should change allowed and supported languages' do + request('/user/logout') + Scripts.login($staff[:email], $staff[:password], true) + + result= request('/system/edit-settings', { + "csrf_userid" => $csrf_userid, + "csrf_token" => $csrf_token, + "supportedLanguages" => '["en", "pr", "jp", "ru"]', + "allowedLanguages" => '["en","pr", "jp", "ru", "de"]' + }) + + (result['status']).should.equal('success') + + row = $database.getRow('language', 'en', 'code') + (row['supported']).should.equal('1') + + row = $database.getRow('language', 'pr', 'code') + (row['supported']).should.equal('1') + + row = $database.getRow('language', 'jp', 'code') + (row['supported']).should.equal('1') + + row = $database.getRow('language', 'ru', 'code') + (row['supported']).should.equal('1') + + row = $database.getRow('language', 'en', 'code') + (row['allowed']).should.equal('1') + + row = $database.getRow('language', 'pr', 'code') + (row['allowed']).should.equal('1') + + row = $database.getRow('language', 'jp', 'code') + (row['allowed']).should.equal('1') + + row = $database.getRow('language', 'ru', 'code') + (row['allowed']).should.equal('1') + + row = $database.getRow('language', 'de', 'code') + (row['allowed']).should.equal('1') + + request('/user/logout') + end end \ No newline at end of file