This repository was archived by the owner on Dec 26, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 11 files changed +192
-6
lines changed Expand file tree Collapse file tree 11 files changed +192
-6
lines changed Original file line number Diff line number Diff line change 12
12
"strapi" : " strapi"
13
13
},
14
14
"devDependencies" : {
15
- "@faker-js/faker" : " ^7.3.0"
15
+ "@faker-js/faker" : " ^7.3.0" ,
16
+ "lodash.merge" : " ^4.6.2"
16
17
},
17
18
"dependencies" : {
18
19
"@strapi/plugin-graphql" : " 4.2.2" ,
Original file line number Diff line number Diff line change 1
1
module . exports = {
2
2
SEED_USERNAME : 'seed_user' ,
3
+ DEFAULT_PUBLIC_ROLE_ID : 2 , // Auth user - 1, Public - 2 - this is by default
3
4
APPLICATION_COLLECTION_TYPE_UIDS : [
4
5
'api::contributor.contributor' ,
5
6
'api::partner.partner' ,
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {Strapi } strapi
3
+ * @returns {Promise<void> }
4
+ */
5
+ const fillGeneralData = async ( strapi ) => {
6
+ console . log ( 'filling general data...' )
7
+
8
+ let generalObject = await strapi . entityService . findMany ( 'api::general.general' , { } )
9
+
10
+ if ( ! generalObject ) {
11
+ generalObject = await strapi . entityService . create ( 'api::general.general' , {
12
+ data : {
13
+ publishedAt : new Date ( ) . toISOString ( )
14
+ }
15
+ } )
16
+ }
17
+
18
+ await strapi . entityService . update ( 'api::general.general' , generalObject . id , {
19
+ data : {
20
+ news_ticker : {
21
+ name : 'news_ticker' ,
22
+ content : '# markdown content'
23
+ }
24
+ }
25
+ } )
26
+
27
+ console . log ( 'general data has been filled successfully!' )
28
+ }
29
+
30
+ module . exports = {
31
+ fillGeneralData,
32
+ }
Original file line number Diff line number Diff line change 1
- const { APPLICATION_COLLECTION_TYPE_UIDS } = require ( './constants' ) ;
1
+ const { APPLICATION_COLLECTION_TYPE_UIDS , DEFAULT_PUBLIC_ROLE_ID , } = require ( './constants' ) ;
2
2
const { statSync } = require ( 'fs' ) ;
3
+ const merge = require ( 'lodash.merge' )
3
4
4
5
/**
5
6
* @param {Strapi } strapi
@@ -58,8 +59,16 @@ const uploadFile = async (strapi, {
58
59
data,
59
60
file,
60
61
} ) => {
61
- const { refId, ref, field } = data
62
- const { name, path, type } = file
62
+ const {
63
+ refId,
64
+ ref,
65
+ field
66
+ } = data
67
+ const {
68
+ name,
69
+ path,
70
+ type
71
+ } = file
63
72
64
73
const fileStat = statSync ( path ) ;
65
74
@@ -80,10 +89,78 @@ const uploadFile = async (strapi, {
80
89
return uploadedFile
81
90
}
82
91
92
+ /**
93
+ * @param {Strapi } strapi
94
+ */
95
+ const updateStrapiPublicRole = async ( strapi , ) => {
96
+ const roleService = strapi . plugin ( 'users-permissions' ) . service ( 'role' )
97
+
98
+ const publicRoleSettings = await roleService . findOne ( DEFAULT_PUBLIC_ROLE_ID )
99
+ const overridePermissions = {
100
+ 'api::contributor' : {
101
+ controllers : {
102
+ contributor : {
103
+ find : {
104
+ enabled : true ,
105
+ } ,
106
+ findOne : {
107
+ enabled : true ,
108
+ } ,
109
+ }
110
+ }
111
+ } ,
112
+ 'api::general' : {
113
+ controllers : {
114
+ general : {
115
+ find : {
116
+ enabled : true ,
117
+ } ,
118
+ }
119
+ }
120
+ } ,
121
+ 'api::home-page' : {
122
+ controllers : {
123
+ 'home-page' : {
124
+ find : {
125
+ enabled : true ,
126
+ } ,
127
+ }
128
+ }
129
+ } ,
130
+ 'api::partner' : {
131
+ controllers : {
132
+ partner : {
133
+ find : {
134
+ enabled : true ,
135
+ } ,
136
+ findOne : {
137
+ enabled : true ,
138
+ } ,
139
+ }
140
+ }
141
+ } ,
142
+ 'api::project' : {
143
+ controllers : {
144
+ project : {
145
+ find : {
146
+ enabled : true ,
147
+ } ,
148
+ findOne : {
149
+ enabled : true ,
150
+ } ,
151
+ }
152
+ }
153
+ } ,
154
+ }
155
+
156
+ await roleService . updateRole ( DEFAULT_PUBLIC_ROLE_ID , merge ( { ...publicRoleSettings } , { permissions : overridePermissions } ) )
157
+ }
158
+
83
159
module . exports = {
84
160
ensureSQLite,
85
161
randomBoolean,
86
162
clearData,
87
163
sampleSize,
88
164
uploadFile,
165
+ updateStrapiPublicRole,
89
166
}
Original file line number Diff line number Diff line change 1
1
const { seedUserExists, generateUserData } = require ( './user' ) ;
2
- const { clearData } = require ( './helpers' ) ;
2
+ const { clearData, updateStrapiPublicRole } = require ( './helpers' ) ;
3
3
const { generatePartnerData } = require ( './partner' ) ;
4
4
const { generateProjectAndContributorData } = require ( './project-and-contributor' ) ;
5
5
const { fillHomePage } = require ( './pages' ) ;
6
+ const { fillGeneralData } = require ( './general' ) ;
6
7
7
8
/**
8
9
* @param {Strapi } strapi
@@ -36,14 +37,18 @@ const generateSeedData = async (strapi) => {
36
37
throw new Error ( e )
37
38
} )
38
39
39
- // Pages
40
+ // Single Types
40
41
await Promise . all ( [
41
42
fillHomePage ( strapi ) ,
43
+ fillGeneralData ( strapi ) ,
42
44
] ) . catch ( e => {
43
45
console . error ( 'error during generating page data! Stopping the application...' )
44
46
throw new Error ( e )
45
47
} )
46
48
49
+ console . log ( 'updating Public role to access pages and data' )
50
+ await updateStrapiPublicRole ( strapi )
51
+
47
52
console . log ( 'generating seed data has been finished successfully!' )
48
53
}
49
54
Original file line number Diff line number Diff line change
1
+ {
2
+ "kind" : " singleType" ,
3
+ "collectionName" : " generals" ,
4
+ "info" : {
5
+ "singularName" : " general" ,
6
+ "pluralName" : " generals" ,
7
+ "displayName" : " General"
8
+ },
9
+ "options" : {
10
+ "draftAndPublish" : true
11
+ },
12
+ "pluginOptions" : {},
13
+ "attributes" : {
14
+ "news_ticker" : {
15
+ "type" : " component" ,
16
+ "repeatable" : false ,
17
+ "component" : " general.markup"
18
+ }
19
+ }
20
+ }
Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+
3
+ /**
4
+ * general controller
5
+ */
6
+
7
+ const { createCoreController } = require ( '@strapi/strapi' ) . factories ;
8
+
9
+ module . exports = createCoreController ( 'api::general.general' ) ;
Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+
3
+ /**
4
+ * general router.
5
+ */
6
+
7
+ const { createCoreRouter } = require ( '@strapi/strapi' ) . factories ;
8
+
9
+ module . exports = createCoreRouter ( 'api::general.general' ) ;
Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+
3
+ /**
4
+ * general service.
5
+ */
6
+
7
+ const { createCoreService } = require ( '@strapi/strapi' ) . factories ;
8
+
9
+ module . exports = createCoreService ( 'api::general.general' ) ;
Original file line number Diff line number Diff line change
1
+ {
2
+ "collectionName" : " components_general_markups" ,
3
+ "info" : {
4
+ "displayName" : " Markup" ,
5
+ "icon" : " align-justify"
6
+ },
7
+ "options" : {},
8
+ "attributes" : {
9
+ "name" : {
10
+ "type" : " string" ,
11
+ "required" : true
12
+ },
13
+ "content" : {
14
+ "type" : " richtext" ,
15
+ "required" : true
16
+ }
17
+ }
18
+ }
You can’t perform that action at this time.
0 commit comments