!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/wincloud_gateway/node_modules/strapi-plugin-content-manager/services/   drwxr-xr-x
Free 13.04 GB of 57.97 GB (22.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     configuration.js (2.2 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
'use strict';

const { intersection, difference } = require('lodash');
const { createDefaultConfiguration, syncConfiguration } = require('./utils/configuration');

module.exports = ({ isComponent, prefix, storeUtils, getModels }) => {
  const uidToStoreKey = uid => {
    return `${prefix}::${uid}`;
  };

  const getConfiguration = uid => {
    const storeKey = uidToStoreKey(uid);
    return storeUtils.getModelConfiguration(storeKey);
  };

  const setConfiguration = (uid, input) => {
    const { settings, metadatas, layouts } = input;

    const configuration = {
      uid,
      settings,
      metadatas,
      layouts,
    };

    if (isComponent) {
      configuration.isComponent = isComponent;
    }

    const storeKey = uidToStoreKey(uid);
    return storeUtils.setModelConfiguration(storeKey, configuration);
  };

  const deleteConfiguration = uid => {
    const storeKey = uidToStoreKey(uid);
    return storeUtils.deleteKey(storeKey);
  };

  const syncConfigurations = async () => {
    const models = getModels();

    const configurations = await storeUtils.findByKey(
      `plugin_content_manager_configuration_${prefix}`
    );

    const updateConfiguration = async uid => {
      const conf = configurations.find(conf => conf.uid === uid);

      return setConfiguration(uid, await syncConfiguration(conf, models[uid]));
    };

    const generateNewConfiguration = async uid => {
      return setConfiguration(uid, await createDefaultConfiguration(models[uid]));
    };

    const currentUIDS = Object.keys(models);
    const DBUIDs = configurations.map(({ uid }) => uid);

    const contentTypesToUpdate = intersection(currentUIDS, DBUIDs);
    const contentTypesToAdd = difference(currentUIDS, DBUIDs);
    const contentTypesToDelete = difference(DBUIDs, currentUIDS);

    // delete old schemas
    await Promise.all(contentTypesToDelete.map(uid => deleteConfiguration(uid)));

    // create new schemas
    await Promise.all(contentTypesToAdd.map(uid => generateNewConfiguration(uid)));

    // update current schemas
    await Promise.all(contentTypesToUpdate.map(uid => updateConfiguration(uid)));
  };

  return {
    getConfiguration,
    setConfiguration,
    deleteConfiguration,
    syncConfigurations,
  };
};

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0057 ]--