mirror of
https://github.com/strapi/strapi.git
synced 2025-09-14 11:08:35 +00:00
Merge branch 'master' into feat-private
This commit is contained in:
commit
18d934c632
@ -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
|
||||
|
||||
|
@ -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
|
||||
```
|
||||
|
||||
:::
|
||||
|
@ -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"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "3.0.0-beta.18.2",
|
||||
"version": "3.0.0-beta.18.3",
|
||||
"packages": [
|
||||
"packages/*",
|
||||
"examples/*"
|
||||
|
@ -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\""
|
||||
|
@ -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",
|
||||
|
@ -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 = '' }) => {
|
||||
|
@ -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": [
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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];
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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",
|
||||
|
@ -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"
|
||||
|
@ -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": [
|
||||
|
@ -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",
|
||||
|
@ -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": [
|
||||
|
@ -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"
|
||||
},
|
||||
|
@ -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;
|
@ -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;
|
@ -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 = {
|
||||
|
@ -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}>
|
||||
<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 (
|
||||
|
@ -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": {
|
||||
|
@ -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,
|
||||
};
|
||||
|
||||
|
@ -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": {
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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"
|
||||
},
|
||||
|
@ -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', '');
|
||||
|
||||
|
@ -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",
|
||||
|
@ -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 приложения",
|
||||
|
@ -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
|
||||
|
@ -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": {
|
||||
|
@ -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.',
|
||||
|
@ -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);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [
|
||||
|
@ -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": [],
|
||||
|
@ -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'.`
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -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": [
|
||||
|
@ -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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user