|
183 | 183 | $filters
|
184 | 184 | );
|
185 | 185 |
|
| 186 | +// List of teampass users ids (and current user id). |
| 187 | +$tpUsersIDs = [ |
| 188 | + OTV_USER_ID, |
| 189 | + SSH_USER_ID, |
| 190 | + API_USER_ID, |
| 191 | + $session->get('user-id'), |
| 192 | +]; |
| 193 | + |
186 | 194 | // Do asked action
|
187 | 195 | switch ($inputData['type']) {
|
188 | 196 | /*
|
|
647 | 655 | if (empty($data['restricted_to']) === false) {
|
648 | 656 | foreach (explode(';', $data['restricted_to']) as $userRest) {
|
649 | 657 | if (empty($userRest) === false) {
|
650 |
| - $dataTmp = DB::queryfirstrow('SELECT login FROM ' . prefixTable('users') . ' WHERE id= ' . $userRest); |
| 658 | + $dataTmp = DB::queryfirstrow( |
| 659 | + 'SELECT login |
| 660 | + FROM ' . prefixTable('users') . ' |
| 661 | + WHERE id= %i', |
| 662 | + $userRest |
| 663 | + ); |
| 664 | + |
651 | 665 | if (empty($oldRestrictionList) === true) {
|
652 | 666 | $oldRestrictionList = $dataTmp['login'];
|
653 | 667 | } else {
|
|
3082 | 3096 | if (empty($dataItem['restricted_to']) === false) {
|
3083 | 3097 | foreach (explode(';', $dataItem['restricted_to']) as $userRest) {
|
3084 | 3098 | if (empty($userRest) === false) {
|
3085 |
| - $dataTmp = DB::queryfirstrow('SELECT login FROM ' . prefixTable('users') . ' WHERE id= ' . $userRest); |
| 3099 | + $dataTmp = DB::queryfirstrow( |
| 3100 | + 'SELECT login |
| 3101 | + FROM ' . prefixTable('users') . ' |
| 3102 | + WHERE id= %i', |
| 3103 | + $userRest |
| 3104 | + ); |
3086 | 3105 | if (empty($listOfRestricted)) {
|
3087 | 3106 | $listOfRestricted = $dataTmp['login'];
|
3088 | 3107 | } else {
|
|
5225 | 5244 | $users = DB::query(
|
5226 | 5245 | 'SELECT id, public_key
|
5227 | 5246 | FROM ' . prefixTable('users') . '
|
5228 |
| - WHERE id NOT IN ("' . OTV_USER_ID . '","' . SSH_USER_ID . '","' . API_USER_ID . '","' . $session->get('user-id') . '") |
5229 |
| - AND public_key != ""' |
| 5247 | + WHERE id NOT IN %li |
| 5248 | + AND public_key != ""', |
| 5249 | + $tpUsersIDs |
5230 | 5250 | );
|
| 5251 | + |
5231 | 5252 | foreach ($users as $user) {
|
5232 | 5253 | // Insert in DB the new object key for this item by user
|
5233 | 5254 | DB::insert(
|
|
5264 | 5285 | $users = DB::query(
|
5265 | 5286 | 'SELECT id, public_key
|
5266 | 5287 | FROM ' . prefixTable('users') . '
|
5267 |
| - WHERE id NOT IN ("' . OTV_USER_ID . '","' . SSH_USER_ID . '","' . API_USER_ID . '","' . $session->get('user-id') . '") |
5268 |
| - AND public_key != ""' |
| 5288 | + WHERE id NOT IN %li |
| 5289 | + AND public_key != ""', |
| 5290 | + $tpUsersIDs |
5269 | 5291 | );
|
5270 | 5292 | foreach ($users as $user) {
|
5271 | 5293 | // Insert in DB the new object key for this item by user
|
|
5304 | 5326 | $users = DB::query(
|
5305 | 5327 | 'SELECT id, public_key
|
5306 | 5328 | FROM ' . prefixTable('users') . '
|
5307 |
| - WHERE id NOT IN ("' . OTV_USER_ID . '","' . SSH_USER_ID . '","' . API_USER_ID . '","' . $session->get('user-id') . '") |
5308 |
| - AND public_key != ""' |
| 5329 | + WHERE id NOT IN %li |
| 5330 | + AND public_key != ""', |
| 5331 | + $tpUsersIDs |
5309 | 5332 | );
|
| 5333 | + |
5310 | 5334 | foreach ($users as $user) {
|
5311 | 5335 | // Insert in DB the new object key for this item by user
|
5312 | 5336 | DB::insert(
|
|
5550 | 5574 | $users = DB::query(
|
5551 | 5575 | 'SELECT id, public_key
|
5552 | 5576 | FROM ' . prefixTable('users') . '
|
5553 |
| - WHERE id NOT IN ("' . OTV_USER_ID . '","' . SSH_USER_ID . '","' . API_USER_ID . '","' . $session->get('user-id') . '") |
5554 |
| - AND public_key != ""' |
| 5577 | + WHERE id NOT IN %li |
| 5578 | + AND public_key != ""', |
| 5579 | + $tpUsersIDs |
5555 | 5580 | );
|
| 5581 | + |
5556 | 5582 | foreach ($users as $user) {
|
5557 | 5583 | // Insert in DB the new object key for this item by user
|
5558 | 5584 | DB::insert(
|
|
5589 | 5615 | $users = DB::query(
|
5590 | 5616 | 'SELECT id, public_key
|
5591 | 5617 | FROM ' . prefixTable('users') . '
|
5592 |
| - WHERE id NOT IN ("' . OTV_USER_ID . '","' . SSH_USER_ID . '","' . API_USER_ID . '","' . $session->get('user-id') . '") |
5593 |
| - AND public_key != ""' |
| 5618 | + WHERE id NOT IN %li |
| 5619 | + AND public_key != ""', |
| 5620 | + $tpUsersIDs |
5594 | 5621 | );
|
| 5622 | + |
5595 | 5623 | foreach ($users as $user) {
|
5596 | 5624 | // Insert in DB the new object key for this item by user
|
5597 | 5625 | DB::insert(
|
|
5629 | 5657 | $users = DB::query(
|
5630 | 5658 | 'SELECT id, public_key
|
5631 | 5659 | FROM ' . prefixTable('users') . '
|
5632 |
| - WHERE id NOT IN ("' . OTV_USER_ID . '","' . SSH_USER_ID . '","' . API_USER_ID . '","' . $session->get('user-id') . '") |
5633 |
| - AND public_key != ""' |
| 5660 | + WHERE id NOT IN %li |
| 5661 | + AND public_key != ""', |
| 5662 | + $tpUsersIDs |
5634 | 5663 | );
|
| 5664 | + |
5635 | 5665 | foreach ($users as $user) {
|
5636 | 5666 | // Insert in DB the new object key for this item by user
|
5637 | 5667 | DB::insert(
|
|
5835 | 5865 | }
|
5836 | 5866 | if ($inputData['cat'] === 'request_access_to_author') {
|
5837 | 5867 | // Variables
|
5838 |
| - $dataAuthor = DB::queryfirstrow('SELECT email,login FROM ' . prefixTable('users') . ' WHERE id = ' . $post_content[1]); |
5839 |
| - $dataItem = DB::queryfirstrow('SELECT label, id_tree FROM ' . prefixTable('items') . ' WHERE id = ' . $post_content[0]); |
| 5868 | + $dataAuthor = DB::queryfirstrow( |
| 5869 | + 'SELECT email,login |
| 5870 | + FROM ' . prefixTable('users') . ' |
| 5871 | + WHERE id = %i', |
| 5872 | + $post_content[1] |
| 5873 | + ); |
| 5874 | + |
| 5875 | + $dataItem = DB::queryfirstrow( |
| 5876 | + 'SELECT label, id_tree |
| 5877 | + FROM ' . prefixTable('items') . ' |
| 5878 | + WHERE id = %i', |
| 5879 | + $post_content[0] |
| 5880 | + ); |
5840 | 5881 |
|
5841 | 5882 | // Get path
|
5842 | 5883 | $path = geItemReadablePath(
|
|
5903 | 5944 | break;
|
5904 | 5945 |
|
5905 | 5946 | /*
|
5906 |
| - * CASE |
5907 |
| - * manage notification of an Item |
5908 |
| - */ |
5909 |
| - /* |
5910 |
| - case 'notify_a_user': |
5911 |
| - if ($inputData['key'] !== $session->get('key')) { |
5912 |
| - echo '[{"error" : "something_wrong"}]'; |
5913 |
| - break; |
5914 |
| - } |
5915 |
| - if ($inputData['notifyType'] === 'on_show') { |
5916 |
| - // Check if values already exist |
5917 |
| - $data = DB::queryfirstrow( |
5918 |
| - 'SELECT notification FROM ' . prefixTable('items') . ' WHERE id = %i', |
5919 |
| - $inputData['itemId'] |
5920 |
| - ); |
5921 |
| - $notifiedUsers = explode(';', $data['notification']); |
5922 |
| - // User is not in actual notification list |
5923 |
| - if ($inputData['status'] === 'true' && !in_array($inputData['userId'], $notifiedUsers)) { |
5924 |
| - // User is not in actual notification list and wants to be notified |
5925 |
| - DB::update( |
5926 |
| - prefixTable('items'), |
5927 |
| - array( |
5928 |
| - 'notification' => empty($data['notification']) ? |
5929 |
| - $inputData['userId'] . ';' |
5930 |
| - : $data['notification'] . $inputData['userId'] , |
5931 |
| - ), |
5932 |
| - 'id=%i', |
5933 |
| - $inputData['itemId'] |
5934 |
| - ); |
5935 |
| - echo '[{"error" : "", "new_status":"true"}]'; |
5936 |
| - break; |
5937 |
| - } |
5938 |
| - if ($inputData['status'] === 'false' && in_array($inputData['userId'], $notifiedUsers)) { |
5939 |
| - // TODO : delete user from array and store in DB |
5940 |
| - // User is in actual notification list and doesn't want to be notified |
5941 |
| - DB::update( |
5942 |
| - prefixTable('items'), |
5943 |
| - array( |
5944 |
| - 'notification' => empty($data['notification']) ? |
5945 |
| - $inputData['userId'] |
5946 |
| - : $data['notification'] . ';' . $inputData['userId'], |
5947 |
| - ), |
5948 |
| - 'id=%i', |
5949 |
| - $inputData['itemId'] |
5950 |
| - ); |
5951 |
| - } |
5952 |
| - } |
5953 |
| - break; |
5954 |
| - */ |
5955 |
| - |
5956 |
| - /* |
5957 |
| - * CASE |
5958 |
| - * Item History Log - add new entry |
5959 |
| - */ |
| 5947 | + * CASE |
| 5948 | + * Item History Log - add new entry |
| 5949 | + */ |
5960 | 5950 | case 'history_entry_add':
|
5961 | 5951 | if ($inputData['key'] !== $session->get('key')) {
|
5962 | 5952 | $data = array('error' => 'key_is_wrong');
|
|
6057 | 6047 | );
|
6058 | 6048 | break;
|
6059 | 6049 |
|
6060 |
| - /* |
6061 |
| - * CASE |
6062 |
| - * Check if Item has been changed since loaded |
6063 |
| - */ |
6064 | 6050 | /*
|
6065 |
| - case 'is_item_changed': |
6066 |
| - $data = DB::queryFirstRow( |
6067 |
| - 'SELECT date FROM ' . prefixTable('log_items') . ' WHERE action = %s AND id_item = %i ORDER BY date DESC', |
6068 |
| - 'at_modification', |
6069 |
| - $inputData['itemId'] |
6070 |
| - ); |
6071 |
| - // Check if it's in a personal folder. If yes, then force complexity overhead. |
6072 |
| - if ((int) $data['date'] > (int) $inputData['timestamp']) { |
6073 |
| - echo '{ "modified" : "1" }'; |
6074 |
| - } else { |
6075 |
| - echo '{ "modified" : "0" }'; |
6076 |
| - } |
6077 |
| - break; |
6078 |
| - */ |
6079 |
| - |
6080 |
| - /* |
6081 |
| - * CASE |
6082 |
| - * Check if Item has been changed since loaded |
6083 |
| - */ |
| 6051 | + * CASE |
| 6052 | + * Check if Item has been changed since loaded |
| 6053 | + */ |
6084 | 6054 | case 'generate_OTV_url':
|
6085 | 6055 | // Check KEY
|
6086 | 6056 | if ($inputData['key'] !== $session->get('key')) {
|
|
6095 | 6065 | );
|
6096 | 6066 |
|
6097 | 6067 | // delete all existing old otv codes
|
6098 |
| - $rows = DB::query('SELECT id FROM ' . prefixTable('otv') . ' WHERE time_limit < ' . time()); |
6099 |
| - foreach ($rows as $record) { |
6100 |
| - DB::delete(prefixTable('otv'), 'id=%i', $record['id']); |
6101 |
| - } |
| 6068 | + DB::delete( |
| 6069 | + prefixTable('otv'), |
| 6070 | + 'time_limit < %i', |
| 6071 | + time() |
| 6072 | + ); |
6102 | 6073 |
|
6103 | 6074 | // generate session
|
6104 | 6075 | $otv_code = GenerateCryptKey(32, false, true, true, false, true);
|
|
0 commit comments