/////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
// Copyright (C) 2013 - 2026, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////

import pgAdmin from 'sources/pgadmin';
import current_user from 'pgadmin.user_management.current_user';
import gettext from 'sources/gettext';

export default function withCheckPermission(options, callback) {
  // Check if the user has permission to access the menu item
  return ()=>{
    options = options ?? {};
    // if the permission are not provided then no restrictions.
    if(!options.permission || (options.permission && current_user.permissions?.includes(options.permission))) {
      callback();
    } else {
      pgAdmin.Browser.notifier.alert(
        gettext('Permission Denied'),
        gettext('You don\'t have the necessary permissions to access this feature. Please contact your administrator for assistance.')
      );
    }
  };
}
