Merge branch 'master' into feat-private

This commit is contained in:
Jim LAURIE 2019-12-26 14:21:23 +01:00 committed by GitHub
commit 18d934c632
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
52 changed files with 253 additions and 100 deletions

View File

@ -349,7 +349,7 @@ xhr.send(
::: tab "Many-to-Many" id="many-to-many"
One-to-Many relationships are usefull when an entry can be liked to multiple entries of an other Content Type. And an entry of the other Content Type can be linked to many entries.
Many-to-Many relationships are usefull when an entry can be liked to multiple entries of an other Content Type. And an entry of the other Content Type can be linked to many entries.
#### Example

View File

@ -172,7 +172,7 @@ MongoDB must already be running in the background.
::: tab yarn
```
yarn create strapi-app new my-project
yarn create strapi-app my-project
```
:::

View File

@ -1,7 +1,7 @@
{
"name": "getstarted",
"private": true,
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "A Strapi application.",
"scripts": {
"develop": "strapi develop",
@ -15,21 +15,21 @@
"mysql": "^2.17.1",
"pg": "^7.10.0",
"sqlite3": "^4.0.6",
"strapi": "3.0.0-beta.18.2",
"strapi-admin": "3.0.0-beta.18.2",
"strapi-connector-bookshelf": "3.0.0-beta.18.2",
"strapi-connector-mongoose": "3.0.0-beta.18.2",
"strapi-middleware-views": "3.0.0-beta.18.2",
"strapi-plugin-content-manager": "3.0.0-beta.18.2",
"strapi-plugin-content-type-builder": "3.0.0-beta.18.2",
"strapi-plugin-documentation": "3.0.0-beta.18.2",
"strapi-plugin-email": "3.0.0-beta.18.2",
"strapi-plugin-graphql": "3.0.0-beta.18.2",
"strapi-plugin-upload": "3.0.0-beta.18.2",
"strapi-plugin-users-permissions": "3.0.0-beta.18.2",
"strapi-provider-email-mailgun": "3.0.0-beta.18.2",
"strapi-provider-upload-aws-s3": "3.0.0-beta.18.2",
"strapi-utils": "3.0.0-beta.18.2"
"strapi": "3.0.0-beta.18.3",
"strapi-admin": "3.0.0-beta.18.3",
"strapi-connector-bookshelf": "3.0.0-beta.18.3",
"strapi-connector-mongoose": "3.0.0-beta.18.3",
"strapi-middleware-views": "3.0.0-beta.18.3",
"strapi-plugin-content-manager": "3.0.0-beta.18.3",
"strapi-plugin-content-type-builder": "3.0.0-beta.18.3",
"strapi-plugin-documentation": "3.0.0-beta.18.3",
"strapi-plugin-email": "3.0.0-beta.18.3",
"strapi-plugin-graphql": "3.0.0-beta.18.3",
"strapi-plugin-upload": "3.0.0-beta.18.3",
"strapi-plugin-users-permissions": "3.0.0-beta.18.3",
"strapi-provider-email-mailgun": "3.0.0-beta.18.3",
"strapi-provider-upload-aws-s3": "3.0.0-beta.18.3",
"strapi-utils": "3.0.0-beta.18.3"
},
"strapi": {
"uuid": "getstarted"

View File

@ -1,5 +1,5 @@
{
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"packages": [
"packages/*",
"examples/*"

View File

@ -1,6 +1,6 @@
{
"name": "create-strapi-app",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate a new Strapi application.",
"license": "MIT",
"homepage": "http://strapi.io",
@ -21,7 +21,7 @@
],
"dependencies": {
"commander": "^2.20.0",
"strapi-generate-new": "3.0.0-beta.18.2"
"strapi-generate-new": "3.0.0-beta.18.3"
},
"scripts": {
"test": "echo \"no tests yet\""

View File

@ -1,6 +1,6 @@
{
"name": "strapi-admin",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Strapi Admin",
"repository": {
"type": "git",
@ -80,8 +80,8 @@
"reselect": "^3.0.1",
"sanitize.css": "^4.1.0",
"shelljs": "^0.7.8",
"strapi-helper-plugin": "3.0.0-beta.18.2",
"strapi-utils": "3.0.0-beta.18.2",
"strapi-helper-plugin": "3.0.0-beta.18.3",
"strapi-utils": "3.0.0-beta.18.3",
"style-loader": "^0.23.1",
"styled-components": "^4.2.0",
"terser-webpack-plugin": "^1.2.3",

View File

@ -54,8 +54,21 @@ const populateBareAssociations = (definition, { prefix = '' } = {}) => {
});
}
return `${prefix}${assoc.alias}`;
});
const path = `${prefix}${assoc.alias}`;
const assocModel = findModelByAssoc({ assoc });
const polyAssocs = assocModel.associations
.filter(assoc => isPolymorphic({ assoc }))
.map(assoc =>
formatPolymorphicPopulate({
assoc,
prefix: `${path}.`,
})
);
return [path, ...polyAssocs];
})
.reduce((acc, val) => acc.concat(val), []);
};
const formatAssociationPopulate = ({ assoc, prefix = '' }) => {

View File

@ -1,6 +1,6 @@
{
"name": "strapi-connector-bookshelf",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Bookshelf hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [
@ -22,7 +22,7 @@
"lodash": "^4.17.11",
"pluralize": "^7.0.0",
"rimraf": "^2.6.3",
"strapi-utils": "3.0.0-beta.18.2"
"strapi-utils": "3.0.0-beta.18.3"
},
"strapi": {
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-connector-mongoose",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Mongoose hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [
@ -20,7 +20,7 @@
"mongoose-float": "^1.0.4",
"mongoose-long": "^0.2.1",
"pluralize": "^7.0.0",
"strapi-utils": "3.0.0-beta.18.2"
"strapi-utils": "3.0.0-beta.18.3"
},
"author": {
"email": "hi@strapi.io",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-database",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Strapi's database layer",
"homepage": "http://strapi.io",
"main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-api",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate an API for a Strapi application.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-controller",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate a controller for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-model",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate a model for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -164,7 +164,7 @@ async function askDatabaseInfos(scope) {
}
async function installDatabaseTestingDep({ scope, configuration }) {
let packageManager = scope.useYarn ? 'yarnpkg' : 'npm;';
let packageManager = scope.useYarn ? 'yarnpkg' : 'npm';
let cmd = scope.useYarn
? ['--cwd', scope.tmpPath, 'add']
: ['install', '--prefix', scope.tmpPath];

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-new",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate a new Strapi application.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-plugin",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate an plugin for a Strapi application.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-policy",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate a policy for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-service",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Generate a service for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Master of ceremonies for the Strapi generators.",
"homepage": "http://strapi.io",
"keywords": [
@ -20,7 +20,7 @@
"fs-extra": "^8.0.1",
"lodash": "^4.17.11",
"reportback": "^2.0.2",
"strapi-utils": "3.0.0-beta.18.2"
"strapi-utils": "3.0.0-beta.18.3"
},
"author": {
"name": "Strapi team",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-helper-plugin",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Helper for Strapi plugins development",
"files": [
"dist"

View File

@ -1,6 +1,6 @@
{
"name": "strapi-hook-ejs",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "EJS hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-hook-redis",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Redis hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [
@ -19,7 +19,7 @@
"lodash": "^4.17.11",
"rimraf": "^2.6.3",
"stack-trace": "0.0.10",
"strapi-utils": "3.0.0-beta.18.2"
"strapi-utils": "3.0.0-beta.18.3"
},
"author": {
"email": "hi@strapi.io",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-middleware-views",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Views middleware to enable server-side rendering for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-content-manager",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "A powerful UI to easily manage your data.",
"strapi": {
"name": "Content Manager",
@ -32,8 +32,8 @@
"redux-immutable": "^4.0.0",
"reselect": "^3.0.1",
"showdown": "^1.9.0",
"strapi-helper-plugin": "3.0.0-beta.18.2",
"strapi-utils": "3.0.0-beta.18.2",
"strapi-helper-plugin": "3.0.0-beta.18.3",
"strapi-utils": "3.0.0-beta.18.3",
"styled-components": "^4.2.0",
"yup": "^0.27.0"
},

View File

@ -0,0 +1,12 @@
import styled from 'styled-components';
import { colors } from 'strapi-helper-plugin';
const Search = styled.input`
width: 100%;
padding: 0 21px;
outline: 0;
color: ${colors.leftMenu.black};
`;
export default Search;

View File

@ -0,0 +1,34 @@
import styled from 'styled-components';
import { colors } from 'strapi-helper-plugin';
const SearchWrapper = styled.div`
position: relative;
margin-top: -2px;
&::after {
display: block;
content: '';
height: 2px;
width: calc(100% - 20px);
background: ${colors.leftMenu.lightGrey};
}
> svg {
position: absolute;
bottom: 15px;
left: 0;
font-size: 11px;
}
button {
position: absolute;
top: 1px;
right: 0;
padding: 5px 0 0px 5px;
line-height: 11px;
outline: 0;
i,
svg {
font-size: 11px;
}
}
`;
export default SearchWrapper;

View File

@ -36,6 +36,17 @@ const Wrapper = styled.div`
font-size: 1em;
color: #bdbdbd;
}
.search {
display: flex;
padding-top: 2px;
color: #919bae;
> button {
margin-top: -8px;
font-size: 1.3rem;
outline: 0;
}
}
`;
Wrapper.defaultProps = {

View File

@ -1,9 +1,12 @@
import React, { useState } from 'react';
import React, { createRef, useEffect, useState } from 'react';
import { Label, ErrorMessage } from '@buffetjs/styles';
import { AutoSizer, Collection } from 'react-virtualized';
import PropTypes from 'prop-types';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import useDataManager from '../../hooks/useDataManager';
import CellRenderer from './CellRenderer';
import Search from './Search';
import SearchWrapper from './SearchWrapper';
import Wrapper from './Wrapper';
const ComponentIconPicker = ({
@ -15,9 +18,7 @@ const ComponentIconPicker = ({
value,
}) => {
const { allIcons, allComponentsIconAlreadyTaken } = useDataManager();
const [originalIcon] = useState(value);
const icons = allIcons.filter(ico => {
const initialIcons = allIcons.filter(ico => {
if (isCreating) {
return !allComponentsIconAlreadyTaken.includes(ico);
}
@ -27,6 +28,18 @@ const ComponentIconPicker = ({
.filter(icon => icon !== originalIcon)
.includes(ico);
});
const ref = createRef();
const [originalIcon] = useState(value);
const [showSearch, setShowSearch] = useState(false);
const [search, setSearch] = useState('');
const [icons, setIcons] = useState(initialIcons);
const toggleSearch = () => setShowSearch(prev => !prev);
useEffect(() => {
if (showSearch && ref.current) {
ref.current.focus();
}
}, [ref, showSearch]);
const cellCount = icons.length;
@ -54,9 +67,42 @@ const ComponentIconPicker = ({
return (
<Wrapper error={error !== null}>
<Label htmlFor={name} style={{ marginBottom: 12 }}>
{label}
</Label>
<div className="search">
<Label htmlFor={name} style={{ marginBottom: 12 }}>
{label}
</Label>
{!showSearch ? (
<button onClick={toggleSearch} type="button">
<FontAwesomeIcon icon="search" />
</button>
) : (
<SearchWrapper>
<FontAwesomeIcon icon="search" />
<button onClick={toggleSearch}></button>
<Search
ref={ref}
onChange={({ target: { value } }) => {
setSearch(value);
setIcons(() =>
initialIcons.filter(icon => icon.includes(value))
);
}}
value={search}
placeholder="search…"
/>
<button
onClick={() => {
setSearch('');
setIcons(initialIcons);
toggleSearch();
}}
type="button"
>
<FontAwesomeIcon icon="times" />
</button>
</SearchWrapper>
)}
</div>
<AutoSizer disableHeight>
{({ width }) => {
return (

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-content-type-builder",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Strapi plugin to create content type (API).",
"strapi": {
"name": "Content Type Builder",
@ -29,9 +29,9 @@
"redux": "^4.0.1",
"redux-immutable": "^4.0.0",
"reselect": "^3.0.1",
"strapi-generate": "3.0.0-beta.18.2",
"strapi-generate-api": "3.0.0-beta.18.2",
"strapi-helper-plugin": "3.0.0-beta.18.2",
"strapi-generate": "3.0.0-beta.18.3",
"strapi-generate-api": "3.0.0-beta.18.3",
"strapi-helper-plugin": "3.0.0-beta.18.3",
"yup": "^0.27.0"
},
"author": {

View File

@ -10,12 +10,13 @@ const createSchemaHandler = require('./schema-handler');
module.exports = function createComponentBuilder() {
return {
setRelation({ key, modelName, attribute }) {
setRelation({ key, modelName, plugin, attribute }) {
this.contentTypes.get(attribute.target).setAttribute(
attribute.targetAttribute,
generateRelation({
key,
attribute,
plugin,
modelName,
})
);
@ -93,6 +94,7 @@ module.exports = function createComponentBuilder() {
this.setRelation({
key,
modelName: contentType.modelName,
plugin: contentType.plugin,
attribute,
});
}
@ -153,6 +155,7 @@ module.exports = function createComponentBuilder() {
return this.setRelation({
key,
modelName: contentType.modelName,
plugin: contentType.plugin,
attribute: newAttributes[key],
});
}
@ -172,6 +175,7 @@ module.exports = function createComponentBuilder() {
return this.setRelation({
key,
modelName: contentType.modelName,
plugin: contentType.plugin,
attribute: newAttribute,
});
}
@ -185,6 +189,7 @@ module.exports = function createComponentBuilder() {
this.setRelation({
key,
modelName: contentType.modelName,
plugin: contentType.plugin,
attribute,
});
}
@ -227,9 +232,10 @@ module.exports = function createComponentBuilder() {
const createContentTypeUID = ({ name }) =>
`application::${nameToSlug(name)}.${nameToSlug(name)}`;
const generateRelation = ({ key, attribute, modelName }) => {
const generateRelation = ({ key, attribute, plugin, modelName }) => {
const opts = {
via: key,
plugin,
columnName: attribute.targetColumnName || undefined,
};

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-documentation",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "This is the description of the plugin.",
"strapi": {
"name": "Documentation",
@ -32,7 +32,7 @@
"redux": "^4.0.1",
"redux-immutable": "^4.0.0",
"reselect": "^4.0.0",
"strapi-helper-plugin": "3.0.0-beta.18.2",
"strapi-helper-plugin": "3.0.0-beta.18.3",
"swagger-ui-dist": "3.24.3"
},
"author": {

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-email",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "This is the description of the plugin.",
"strapi": {
"name": "Email",
@ -12,13 +12,13 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"strapi-provider-email-sendmail": "3.0.0-beta.18.2",
"strapi-utils": "3.0.0-beta.18.2"
"strapi-provider-email-sendmail": "3.0.0-beta.18.3",
"strapi-utils": "3.0.0-beta.18.3"
},
"devDependencies": {
"react-copy-to-clipboard": "5.0.1",
"rimraf": "^2.6.3",
"strapi-helper-plugin": "3.0.0-beta.18.2"
"strapi-helper-plugin": "3.0.0-beta.18.3"
},
"author": {
"name": "Strapi team",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-graphql",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "This is the description of the plugin.",
"strapi": {
"name": "graphql",
@ -23,7 +23,7 @@
"graphql-type-long": "^0.1.1",
"koa-compose": "^4.1.0",
"pluralize": "^7.0.0",
"strapi-utils": "3.0.0-beta.18.2"
"strapi-utils": "3.0.0-beta.18.3"
},
"devDependencies": {
"cross-env": "^5.2.0",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-upload",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "This is the description of the plugin.",
"strapi": {
"name": "Files Upload",
@ -23,9 +23,9 @@
"react-router-dom": "^5.0.0",
"react-transition-group": "^2.5.0",
"reactstrap": "^5.0.0",
"strapi-helper-plugin": "3.0.0-beta.18.2",
"strapi-provider-upload-local": "3.0.0-beta.18.2",
"strapi-utils": "3.0.0-beta.18.2",
"strapi-helper-plugin": "3.0.0-beta.18.3",
"strapi-provider-upload-local": "3.0.0-beta.18.3",
"strapi-utils": "3.0.0-beta.18.3",
"stream-to-array": "^2.3.0",
"uuid": "^3.2.1"
},

View File

@ -70,6 +70,8 @@ class PopUpForm extends React.Component {
return `${strapi.backendURL}/connect/twitter/callback`;
case 'instagram':
return `${strapi.backendURL}/connect/instagram/callback`;
case 'vk':
return `${strapi.backendURL}/connect/vk/callback`;
default: {
const value = get(this.props.values, 'callback', '');

View File

@ -85,6 +85,7 @@
"PopUpForm.Providers.github.providerConfig.redirectURL": "The redirect URL to add in your GitHub application configurations",
"PopUpForm.Providers.google.providerConfig.redirectURL": "The redirect URL to add in your Google application configurations",
"PopUpForm.Providers.instagram.providerConfig.redirectURL": "The redirect URL to add in your Instagram application configurations",
"PopUpForm.Providers.vk.providerConfig.redirectURL": "The redirect URL to add in your VK application configurations",
"PopUpForm.Providers.key.label": "Client ID",
"PopUpForm.Providers.key.placeholder": "TEXT",
"PopUpForm.Providers.linkedin2.providerConfig.redirectURL": "The redirect URL to add in your Linkedin application configurations",

View File

@ -84,6 +84,7 @@
"PopUpForm.Providers.github.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки GitHub приложения",
"PopUpForm.Providers.google.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки Google приложения",
"PopUpForm.Providers.instagram.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки Instagram приложения",
"PopUpForm.Providers.vk.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки VK приложения",
"PopUpForm.Providers.key.label": "Client ID",
"PopUpForm.Providers.key.placeholder": "TEXT",
"PopUpForm.Providers.linkedin2.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки Linkedin приложения",

View File

@ -89,6 +89,14 @@ module.exports = async () => {
secret: '',
callback: '/auth/instagram/callback',
},
vk: {
enabled: false,
icon: 'vk',
key: '',
secret: '',
callback: '/auth/vk/callback',
scope: ['email'],
},
};
const prevGrantConfig = (await pluginStore.get({ key: 'grant' })) || {};
// store grant auth config to db

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-users-permissions",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Protect your API with a full-authentication process based on JWT",
"strapi": {
"name": "Roles & Permissions",
@ -31,8 +31,8 @@
"reactstrap": "^5.0.0",
"redux-saga": "^0.16.0",
"request": "^2.83.0",
"strapi-helper-plugin": "3.0.0-beta.18.2",
"strapi-utils": "3.0.0-beta.18.2",
"strapi-helper-plugin": "3.0.0-beta.18.3",
"strapi-utils": "3.0.0-beta.18.3",
"uuid": "^3.1.0"
},
"devDependencies": {

View File

@ -370,6 +370,25 @@ const getProfile = async (provider, query, callback) => {
});
break;
}
case 'vk': {
const vk = new Purest({ provider: 'vk' });
vk.query()
.get('users.get')
.auth(access_token)
.qs({ id: query.raw.user_id, v: '5.013' })
.request((err, res, body) => {
if (err) {
callback(err);
} else {
callback(null, {
username: `${body.response[0].last_name} ${body.response[0].first_name}`,
email: query.raw.email,
});
}
});
break;
}
default:
callback({
message: 'Unknown provider.',

View File

@ -45,8 +45,8 @@ module.exports = {
* Promise to fetch a/an user.
* @return {Promise}
*/
fetch(params) {
return strapi.query('user', 'users-permissions').findOne(params);
fetch(params, populate) {
return strapi.query('user', 'users-permissions').findOne(params, populate);
},
/**

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-amazon-ses",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Amazon SES provider for strapi email",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-mailgun",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Mailgun provider for strapi email plugin",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-sendgrid",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Sendgrid provider for strapi email",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-sendmail",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Sendmail provider for strapi email",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-aws-s3",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "AWS S3 provider for strapi upload",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-cloudinary",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Cloudinary provider for strapi upload",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-local",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Local provider for strapi upload",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-rackspace",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Rackspace provider for strapi upload",
"main": "./lib",
"keywords": [],

View File

@ -25,7 +25,7 @@ module.exports = ctx => {
if (fullPath.length <= 1 || fullPath[0] !== 'files') {
throw strapi.errors.badRequest(
`When using multipart/form-data you need to provide your files by prefixing them witht the 'files'.`
`When using multipart/form-data you need to provide your files by prefixing them with the 'files'.`
);
}

View File

@ -1,6 +1,6 @@
{
"name": "strapi-utils",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "Shared utilities for the Strapi packages",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi",
"version": "3.0.0-beta.18.2",
"version": "3.0.0-beta.18.3",
"description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MongoDB, MySQL, MariaDB, PostgreSQL, SQLite",
"homepage": "http://strapi.io",
"directories": {
@ -49,16 +49,16 @@
"resolve-cwd": "^3.0.0",
"rimraf": "^2.6.2",
"shelljs": "^0.8.3",
"strapi-database": "3.0.0-beta.18.2",
"strapi-generate": "3.0.0-beta.18.2",
"strapi-generate-api": "3.0.0-beta.18.2",
"strapi-generate-controller": "3.0.0-beta.18.2",
"strapi-generate-model": "3.0.0-beta.18.2",
"strapi-generate-new": "3.0.0-beta.18.2",
"strapi-generate-plugin": "3.0.0-beta.18.2",
"strapi-generate-policy": "3.0.0-beta.18.2",
"strapi-generate-service": "3.0.0-beta.18.2",
"strapi-utils": "3.0.0-beta.18.2"
"strapi-database": "3.0.0-beta.18.3",
"strapi-generate": "3.0.0-beta.18.3",
"strapi-generate-api": "3.0.0-beta.18.3",
"strapi-generate-controller": "3.0.0-beta.18.3",
"strapi-generate-model": "3.0.0-beta.18.3",
"strapi-generate-new": "3.0.0-beta.18.3",
"strapi-generate-plugin": "3.0.0-beta.18.3",
"strapi-generate-policy": "3.0.0-beta.18.3",
"strapi-generate-service": "3.0.0-beta.18.3",
"strapi-utils": "3.0.0-beta.18.3"
},
"scripts": {
"test": "jest --verbose",