mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
Merge pull request #5260 from cobbspur/owner
Prevent multiple owner creation via importer
This commit is contained in:
commit
3ccf549ea7
10 changed files with 307 additions and 1244 deletions
|
@ -13,6 +13,14 @@ DataImporter.prototype.importData = function (data) {
|
||||||
return this.doImport(data);
|
return this.doImport(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
DataImporter.prototype.loadRoles = function () {
|
||||||
|
var options = _.extend({}, internal);
|
||||||
|
|
||||||
|
return models.Role.findAll(options).then(function (roles) {
|
||||||
|
return roles.toJSON();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
DataImporter.prototype.loadUsers = function () {
|
DataImporter.prototype.loadUsers = function () {
|
||||||
var users = {all: {}},
|
var users = {all: {}},
|
||||||
options = _.extend({}, {include: ['roles']}, internal);
|
options = _.extend({}, {include: ['roles']}, internal);
|
||||||
|
@ -33,13 +41,13 @@ DataImporter.prototype.loadUsers = function () {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
DataImporter.prototype.doUserImport = function (t, tableData, users, errors) {
|
DataImporter.prototype.doUserImport = function (t, tableData, owner, users, errors, roles) {
|
||||||
var userOps = [],
|
var userOps = [],
|
||||||
imported = [];
|
imported = [];
|
||||||
|
|
||||||
if (tableData.users && tableData.users.length) {
|
if (tableData.users && tableData.users.length) {
|
||||||
if (tableData.roles_users && tableData.roles_users.length) {
|
if (tableData.roles_users && tableData.roles_users.length) {
|
||||||
tableData = utils.preProcessRolesUsers(tableData);
|
tableData = utils.preProcessRolesUsers(tableData, owner, roles);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Import users, deduplicating with already present users
|
// Import users, deduplicating with already present users
|
||||||
|
@ -72,77 +80,81 @@ DataImporter.prototype.doImport = function (data) {
|
||||||
imported = {},
|
imported = {},
|
||||||
errors = [],
|
errors = [],
|
||||||
users = {},
|
users = {},
|
||||||
owner = {};
|
owner = {}, roles = {};
|
||||||
|
|
||||||
return self.loadUsers().then(function (result) {
|
return self.loadRoles().then(function (_roles) {
|
||||||
owner = result.owner;
|
roles = _roles;
|
||||||
users = result.all;
|
|
||||||
|
|
||||||
return models.Base.transaction(function (t) {
|
return self.loadUsers().then(function (result) {
|
||||||
// Step 1: Attempt to handle adding new users
|
owner = result.owner;
|
||||||
self.doUserImport(t, tableData, users, errors).then(function (result) {
|
users = result.all;
|
||||||
var importResults = [];
|
|
||||||
|
|
||||||
imported.users = result;
|
return models.Base.transaction(function (t) {
|
||||||
|
// Step 1: Attempt to handle adding new users
|
||||||
|
self.doUserImport(t, tableData, owner, users, errors, roles).then(function (result) {
|
||||||
|
var importResults = [];
|
||||||
|
|
||||||
_.each(imported.users, function (user) {
|
imported.users = result;
|
||||||
users[user.email] = {realId: user.id};
|
|
||||||
});
|
|
||||||
|
|
||||||
// process user data - need to figure out what users we have available for assigning stuff to etc
|
_.each(imported.users, function (user) {
|
||||||
try {
|
users[user.email] = {realId: user.id};
|
||||||
tableData = utils.processUsers(tableData, owner, users, ['posts', 'tags']);
|
});
|
||||||
} catch (error) {
|
|
||||||
return t.rollback([error]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do any pre-processing of relationships (we can't depend on ids)
|
// process user data - need to figure out what users we have available for assigning stuff to etc
|
||||||
if (tableData.posts_tags && tableData.posts && tableData.tags) {
|
try {
|
||||||
tableData = utils.preProcessPostTags(tableData);
|
tableData = utils.processUsers(tableData, owner, users, ['posts', 'tags']);
|
||||||
}
|
} catch (error) {
|
||||||
|
return t.rollback([error]);
|
||||||
// Import things in the right order
|
|
||||||
|
|
||||||
return utils.importTags(tableData.tags, t).then(function (results) {
|
|
||||||
if (results) {
|
|
||||||
importResults = importResults.concat(results);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return utils.importPosts(tableData.posts, t);
|
// Do any pre-processing of relationships (we can't depend on ids)
|
||||||
}).then(function (results) {
|
if (tableData.posts_tags && tableData.posts && tableData.tags) {
|
||||||
if (results) {
|
tableData = utils.preProcessPostTags(tableData);
|
||||||
importResults = importResults.concat(results);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return utils.importSettings(tableData.settings, t);
|
// Import things in the right order
|
||||||
}).then(function (results) {
|
|
||||||
if (results) {
|
return utils.importTags(tableData.tags, t).then(function (results) {
|
||||||
importResults = importResults.concat(results);
|
if (results) {
|
||||||
}
|
importResults = importResults.concat(results);
|
||||||
}).then(function () {
|
}
|
||||||
importResults.forEach(function (p) {
|
|
||||||
if (p.isRejected()) {
|
return utils.importPosts(tableData.posts, t);
|
||||||
errors = errors.concat(p.reason());
|
}).then(function (results) {
|
||||||
|
if (results) {
|
||||||
|
importResults = importResults.concat(results);
|
||||||
|
}
|
||||||
|
|
||||||
|
return utils.importSettings(tableData.settings, t);
|
||||||
|
}).then(function (results) {
|
||||||
|
if (results) {
|
||||||
|
importResults = importResults.concat(results);
|
||||||
|
}
|
||||||
|
}).then(function () {
|
||||||
|
importResults.forEach(function (p) {
|
||||||
|
if (p.isRejected()) {
|
||||||
|
errors = errors.concat(p.reason());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (errors.length === 0) {
|
||||||
|
t.commit();
|
||||||
|
} else {
|
||||||
|
t.rollback(errors);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (errors.length === 0) {
|
/** do nothing with these tables, the data shouldn't have changed from the fixtures
|
||||||
t.commit();
|
* permissions
|
||||||
} else {
|
* roles
|
||||||
t.rollback(errors);
|
* permissions_roles
|
||||||
}
|
* permissions_users
|
||||||
|
*/
|
||||||
});
|
});
|
||||||
|
}).then(function () {
|
||||||
/** do nothing with these tables, the data shouldn't have changed from the fixtures
|
// TODO: could return statistics of imported items
|
||||||
* permissions
|
return Promise.resolve();
|
||||||
* roles
|
|
||||||
* permissions_roles
|
|
||||||
* permissions_users
|
|
||||||
*/
|
|
||||||
});
|
});
|
||||||
}).then(function () {
|
|
||||||
// TODO: could return statistics of imported items
|
|
||||||
return Promise.resolve();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -51,11 +51,9 @@ utils = {
|
||||||
if (tableData[obj]) {
|
if (tableData[obj]) {
|
||||||
// For each object in the tableData that matches
|
// For each object in the tableData that matches
|
||||||
_.each(tableData[obj], function (data) {
|
_.each(tableData[obj], function (data) {
|
||||||
// console.log('checking ' + obj + ' ' + data.slug);
|
|
||||||
// For each possible user foreign key
|
// For each possible user foreign key
|
||||||
_.each(userKeys, function (key) {
|
_.each(userKeys, function (key) {
|
||||||
if (_.has(data, key) && data[key] !== null) {
|
if (_.has(data, key) && data[key] !== null) {
|
||||||
// console.log('found ' + key + ' with value ' + data[key]);
|
|
||||||
userMap[data[key]] = {};
|
userMap[data[key]] = {};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -136,11 +134,43 @@ utils = {
|
||||||
return tableData;
|
return tableData;
|
||||||
},
|
},
|
||||||
|
|
||||||
preProcessRolesUsers: function preProcessRolesUsers(tableData) {
|
preProcessRolesUsers: function preProcessRolesUsers(tableData, owner, roles) {
|
||||||
|
var validRoles = _.pluck(roles, 'name');
|
||||||
|
if (!tableData.roles || !tableData.roles.length) {
|
||||||
|
tableData.roles = roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
_.each(tableData.roles, function (_role) {
|
||||||
|
var match = false;
|
||||||
|
// Check import data does not contain unknown roles
|
||||||
|
_.each(validRoles, function (validRole) {
|
||||||
|
if (_role.name === validRole) {
|
||||||
|
match = true;
|
||||||
|
_role.oldId = _role.id;
|
||||||
|
_role.id = _.find(roles, {name: validRole}).id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// If unknown role is found then remove role to force down to Author
|
||||||
|
if (!match) {
|
||||||
|
_role.oldId = _role.id;
|
||||||
|
_role.id = _.find(roles, {name: 'Author'}).id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
_.each(tableData.roles_users, function (roleUser) {
|
_.each(tableData.roles_users, function (roleUser) {
|
||||||
var user = _.find(tableData.users, function (user) {
|
var user = _.find(tableData.users, function (user) {
|
||||||
return user.id === parseInt(roleUser.user_id, 10);
|
return user.id === parseInt(roleUser.user_id, 10);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Map role_id to updated roles id
|
||||||
|
roleUser.role_id = _.find(tableData.roles, {oldId: roleUser.role_id}).id;
|
||||||
|
|
||||||
|
// Check for owner users that do not match current owner and change role to administrator
|
||||||
|
if (roleUser.role_id === owner.roles[0].id && user && user.email && user.email !== owner.email) {
|
||||||
|
roleUser.role_id = _.find(roles, {name: 'Administrator'}).id;
|
||||||
|
user.roles = [roleUser.role_id];
|
||||||
|
}
|
||||||
|
|
||||||
// just the one role for now
|
// just the one role for now
|
||||||
if (user && !user.roles) {
|
if (user && !user.roles) {
|
||||||
user.roles = [roleUser.role_id];
|
user.roles = [roleUser.role_id];
|
||||||
|
@ -210,7 +240,6 @@ utils = {
|
||||||
|
|
||||||
importUsers: function importUsers(tableData, existingUsers, transaction) {
|
importUsers: function importUsers(tableData, existingUsers, transaction) {
|
||||||
var ops = [];
|
var ops = [];
|
||||||
|
|
||||||
tableData = stripProperties(['id'], tableData);
|
tableData = stripProperties(['id'], tableData);
|
||||||
_.each(tableData, function (user) {
|
_.each(tableData, function (user) {
|
||||||
// Validate minimum user fields
|
// Validate minimum user fields
|
||||||
|
|
|
@ -694,9 +694,8 @@ User = ghostBookshelf.Model.extend({
|
||||||
});
|
});
|
||||||
}, errors.logAndThrowError);
|
}, errors.logAndThrowError);
|
||||||
}
|
}
|
||||||
return Promise.reject(new errors.NoPermissionError('Your account is locked due to too many ' +
|
return Promise.reject(new errors.NoPermissionError('Your account is locked. Please reset your password ' +
|
||||||
'login attempts. Please reset your password to log in again by clicking ' +
|
'to log in again by clicking the "Forgotten password?" link!'));
|
||||||
'the "Forgotten password?" link!'));
|
|
||||||
}, function (error) {
|
}, function (error) {
|
||||||
if (error.message === 'NotFound' || error.message === 'EmptyResponse') {
|
if (error.message === 'NotFound' || error.message === 'EmptyResponse') {
|
||||||
return Promise.reject(new errors.NotFoundError('There is no user with that email address.'));
|
return Promise.reject(new errors.NotFoundError('There is no user with that email address.'));
|
||||||
|
|
|
@ -1370,4 +1370,76 @@ describe('Import (new test structure)', function () {
|
||||||
}).catch(done);
|
}).catch(done);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('imports multi user data onto existing data without duplicate owners', function () {
|
||||||
|
var exportData;
|
||||||
|
|
||||||
|
before(function doImport(done) {
|
||||||
|
knex = config.database.knex;
|
||||||
|
|
||||||
|
// initialise the blog with some data
|
||||||
|
testUtils.initFixtures('users:roles', 'posts', 'settings').then(function () {
|
||||||
|
return testUtils.fixtures.loadExportFixture('export-003-mu-multipleOwner');
|
||||||
|
}).then(function (exported) {
|
||||||
|
exportData = exported;
|
||||||
|
return importer.doImport(exportData);
|
||||||
|
}).then(function () {
|
||||||
|
done();
|
||||||
|
}).catch(done);
|
||||||
|
});
|
||||||
|
after(testUtils.teardown);
|
||||||
|
|
||||||
|
it('imports users with correct roles and status', function (done) {
|
||||||
|
var fetchImported = Promise.join(
|
||||||
|
knex('users').select(),
|
||||||
|
knex('roles_users').select()
|
||||||
|
);
|
||||||
|
|
||||||
|
fetchImported.then(function (importedData) {
|
||||||
|
var ownerUser,
|
||||||
|
newUser,
|
||||||
|
existingUser,
|
||||||
|
users,
|
||||||
|
rolesUsers;
|
||||||
|
|
||||||
|
// General data checks
|
||||||
|
should.exist(importedData);
|
||||||
|
importedData.length.should.equal(2, 'Did not get data successfully');
|
||||||
|
|
||||||
|
// Test the users and roles
|
||||||
|
users = importedData[0];
|
||||||
|
rolesUsers = importedData[1];
|
||||||
|
|
||||||
|
// the owner user is first
|
||||||
|
ownerUser = users[0];
|
||||||
|
|
||||||
|
// the other two users should have the imported data, but they get inserted in different orders
|
||||||
|
newUser = _.find(users, function (user) {
|
||||||
|
return user.name === exportData.data.users[1].name;
|
||||||
|
});
|
||||||
|
existingUser = _.find(users, function (user) {
|
||||||
|
return user.name === exportData.data.users[2].name;
|
||||||
|
});
|
||||||
|
|
||||||
|
// we imported 3 users, there were already 4 users, only one of the imported users is new
|
||||||
|
users.length.should.equal(5, 'There should only be three users');
|
||||||
|
|
||||||
|
rolesUsers.length.should.equal(5, 'There should be 5 role relations');
|
||||||
|
|
||||||
|
_.each(rolesUsers, function (roleUser) {
|
||||||
|
if (roleUser.user_id === ownerUser.id) {
|
||||||
|
roleUser.role_id.should.equal(4, 'Original user should be an owner');
|
||||||
|
}
|
||||||
|
if (roleUser.user_id === newUser.id) {
|
||||||
|
roleUser.role_id.should.equal(1, 'New user should be downgraded from owner to admin');
|
||||||
|
}
|
||||||
|
if (roleUser.user_id === existingUser.id) {
|
||||||
|
roleUser.role_id.should.equal(1, 'Existing user was an admin');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
done();
|
||||||
|
}).catch(done);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
125
core/test/utils/fixtures/export/export-003-mu-multipleOwner.json
Normal file
125
core/test/utils/fixtures/export/export-003-mu-multipleOwner.json
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
{
|
||||||
|
"meta": {
|
||||||
|
"exported_on": 1388318311015,
|
||||||
|
"version": "003"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"users": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name": "Joe Bloggs",
|
||||||
|
"slug": "joe-blogs",
|
||||||
|
"email": "jbloggs@example.com",
|
||||||
|
"password": "$2a$10$.pZeeBE0gHXd0PTnbT/ph.GEKgd0Wd3q2pWna3ynTGBkPKnGIKZL6",
|
||||||
|
"image": null,
|
||||||
|
"cover": null,
|
||||||
|
"bio": "A blogger",
|
||||||
|
"website": null,
|
||||||
|
"location": null,
|
||||||
|
"accessibility": null,
|
||||||
|
"status": "active",
|
||||||
|
"language": "en_US",
|
||||||
|
"meta_title": null,
|
||||||
|
"meta_description": null,
|
||||||
|
"last_login": null,
|
||||||
|
"created_at": 1388319432895,
|
||||||
|
"created_by": 1,
|
||||||
|
"updated_at": null,
|
||||||
|
"updated_by": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"name": "Josephine Bloggs",
|
||||||
|
"slug": "josephine-blogs",
|
||||||
|
"password": "$2a$10$.pZeeBE0gHXd0PTnbT/ph.GEKgd0Wd3q2pWna3ynTGBkPKnGIKABC",
|
||||||
|
"email": "josephinebloggs@example.com",
|
||||||
|
"image": null,
|
||||||
|
"cover": null,
|
||||||
|
"bio": "A blogger",
|
||||||
|
"website": null,
|
||||||
|
"location": null,
|
||||||
|
"accessibility": null,
|
||||||
|
"status": "active",
|
||||||
|
"language": "en_US",
|
||||||
|
"meta_title": null,
|
||||||
|
"meta_description": null,
|
||||||
|
"last_login": null,
|
||||||
|
"created_at": 1388319501897,
|
||||||
|
"created_by": 1,
|
||||||
|
"updated_at": null,
|
||||||
|
"updated_by": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"name": "Smith Wellingsworth",
|
||||||
|
"slug": "smith-wellingsworth",
|
||||||
|
"email": "swellingsworth@example.com",
|
||||||
|
"image": null,
|
||||||
|
"cover": null,
|
||||||
|
"bio": null,
|
||||||
|
"website": null,
|
||||||
|
"location": null,
|
||||||
|
"accessibility": null,
|
||||||
|
"status": "invited",
|
||||||
|
"language": "en_US",
|
||||||
|
"meta_title": null,
|
||||||
|
"meta_description": null,
|
||||||
|
"last_login": null,
|
||||||
|
"created_at": 1388319501897,
|
||||||
|
"created_by": 1,
|
||||||
|
"updated_at": null,
|
||||||
|
"updated_by": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roles": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name": "Administrator",
|
||||||
|
"description": "Administrators",
|
||||||
|
"created_at": 1388318310794,
|
||||||
|
"created_by": 1,
|
||||||
|
"updated_at": 1388318310794,
|
||||||
|
"updated_by": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"name": "Editor",
|
||||||
|
"description": "Editors",
|
||||||
|
"created_at": 1388318310796,
|
||||||
|
"created_by": 1,
|
||||||
|
"updated_at": 1388318310796,
|
||||||
|
"updated_by": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"name": "Author",
|
||||||
|
"description": "Authors",
|
||||||
|
"created_at": 1388318310799,
|
||||||
|
"created_by": 1,
|
||||||
|
"updated_at": 1388318310799,
|
||||||
|
"updated_by": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"name": "Owner",
|
||||||
|
"description": "Owner",
|
||||||
|
"created_at": 1388318310799,
|
||||||
|
"created_by": 1,
|
||||||
|
"updated_at": 1388318310799,
|
||||||
|
"updated_by": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roles_users": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"role_id": 3,
|
||||||
|
"user_id": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"role_id": 4,
|
||||||
|
"user_id": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -156,62 +156,6 @@
|
||||||
"user_id": 2
|
"user_id": 2
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "bdfbd261-e0fb-4c8e-abab-aece7a9e8e34",
|
|
||||||
"name": "Edit posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "edit",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310803,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310803,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "580d31c4-e3db-40f3-969d-9a1caea9d1bb",
|
|
||||||
"name": "Remove posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "remove",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310814,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310814,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c1f8b024-e383-494a-835d-6fb673f143db",
|
|
||||||
"name": "Create posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "create",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310818,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310818,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions_users": [],
|
|
||||||
"permissions_roles": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"settings": [
|
"settings": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
@ -415,44 +359,6 @@
|
||||||
"post_id": 1,
|
"post_id": 1,
|
||||||
"tag_id": 1
|
"tag_id": 1
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"apps": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "4d7557f0-0949-4946-9fe8-ec030e0727f0",
|
|
||||||
"name": "Kudos",
|
|
||||||
"slug": "kudos",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"status": "installed",
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"app_settings": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "790e4551-b9cc-4954-8f5d-b6e651bc7342",
|
|
||||||
"key": "position",
|
|
||||||
"value": "bottom",
|
|
||||||
"app_id": 1,
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "29682b66-cdeb-4773-9821-bcf40ea93b58",
|
|
||||||
"key": "size",
|
|
||||||
"value": "60",
|
|
||||||
"app_id": 1,
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,271 +82,6 @@
|
||||||
"updated_at": 1388318310799,
|
"updated_at": 1388318310799,
|
||||||
"updated_by": 1
|
"updated_by": 1
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"roles_users": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 3,
|
|
||||||
"user_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"user_id": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "bdfbd261-e0fb-4c8e-abab-aece7a9e8e34",
|
|
||||||
"name": "Edit posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "edit",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310803,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310803,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "580d31c4-e3db-40f3-969d-9a1caea9d1bb",
|
|
||||||
"name": "Remove posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "remove",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310814,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310814,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c1f8b024-e383-494a-835d-6fb673f143db",
|
|
||||||
"name": "Create posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "create",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310818,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310818,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions_users": [],
|
|
||||||
"permissions_roles": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "f90aa810-4fa2-49fe-a39b-7c0d2ebb473e",
|
|
||||||
"key": "databaseVersion",
|
|
||||||
"value": "001",
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "95ce1c53-69b0-4f5f-be91-d3aeb39046b5",
|
|
||||||
"key": "dbHash",
|
|
||||||
"value": null,
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c356fbde-0bc5-4fe1-9309-2510291aa34d",
|
|
||||||
"key": "title",
|
|
||||||
"value": "Ghost",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"uuid": "858dc11f-8f9e-4011-99ee-d94c48d5a2ce",
|
|
||||||
"key": "description",
|
|
||||||
"value": "Just a blogging platform.",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5,
|
|
||||||
"uuid": "37ca5ae7-bca6-4dd5-8021-4ef6c6dcb097",
|
|
||||||
"key": "email",
|
|
||||||
"value": "josephinebloggs@example.com",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6,
|
|
||||||
"uuid": "1672d62c-fab7-4f22-b333-8cf760189f67",
|
|
||||||
"key": "logo",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7,
|
|
||||||
"uuid": "cd8b0456-578b-467a-857e-551bad17a14d",
|
|
||||||
"key": "cover",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8,
|
|
||||||
"uuid": "c4a074a4-05c7-49f7-83eb-068302c15d82",
|
|
||||||
"key": "defaultLang",
|
|
||||||
"value": "en_US",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 9,
|
|
||||||
"uuid": "21f2f5da-9bee-4dae-b3b7-b8d7baf8be33",
|
|
||||||
"key": "postsPerPage",
|
|
||||||
"value": "6",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10,
|
|
||||||
"uuid": "2d21b736-f85a-4119-a0e3-5fc898b1bf47",
|
|
||||||
"key": "forceI18n",
|
|
||||||
"value": "true",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 11,
|
|
||||||
"uuid": "5c5b91b8-6062-4104-b855-9e121f72b0f0",
|
|
||||||
"key": "permalinks",
|
|
||||||
"value": "/:slug/",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12,
|
|
||||||
"uuid": "795cb328-3e38-4906-81a8-fcdff19d914f",
|
|
||||||
"key": "activeTheme",
|
|
||||||
"value": "notcasper",
|
|
||||||
"type": "theme",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 13,
|
|
||||||
"uuid": "f3afce35-5166-453e-86c3-50dfff74dca7",
|
|
||||||
"key": "activeApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 14,
|
|
||||||
"uuid": "2ea560a3-2304-449d-a62b-f7b622987510",
|
|
||||||
"key": "installedApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"name": "Getting Started",
|
|
||||||
"slug": "getting-started",
|
|
||||||
"description": null,
|
|
||||||
"parent_id": null,
|
|
||||||
"meta_title": null,
|
|
||||||
"meta_description": null,
|
|
||||||
"created_at": 1388318310790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310790,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"name": "Another tag",
|
|
||||||
"slug": "another-tag",
|
|
||||||
"description": null,
|
|
||||||
"parent_id": null,
|
|
||||||
"meta_title": null,
|
|
||||||
"meta_description": null,
|
|
||||||
"created_at": 1388318310790,
|
|
||||||
"created_by": 2,
|
|
||||||
"updated_at": 1388318310790,
|
|
||||||
"updated_by": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"name": "Taggy goodness",
|
|
||||||
"slug": "taggy-goodness",
|
|
||||||
"description": null,
|
|
||||||
"parent_id": null,
|
|
||||||
"meta_title": null,
|
|
||||||
"meta_description": null,
|
|
||||||
"created_at": 1388318310790,
|
|
||||||
"created_by": 3,
|
|
||||||
"updated_at": 1388318310790,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,257 +75,6 @@
|
||||||
"updated_by": null
|
"updated_by": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"roles": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "d2ea9c7f-7e6b-4cae-b009-35c298206852",
|
|
||||||
"name": "Administrator",
|
|
||||||
"description": "Administrators",
|
|
||||||
"created_at": 1388318310794,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310794,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "b0d7d6b0-5b88-45b5-b0e5-a487741b843d",
|
|
||||||
"name": "Editor",
|
|
||||||
"description": "Editors",
|
|
||||||
"created_at": 1388318310796,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310796,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "9f72e817-5490-4ccf-bc78-c557dc9613ca",
|
|
||||||
"name": "Author",
|
|
||||||
"description": "Authors",
|
|
||||||
"created_at": 1388318310799,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310799,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"roles_users": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"user_id": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "bdfbd261-e0fb-4c8e-abab-aece7a9e8e34",
|
|
||||||
"name": "Edit posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "edit",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310803,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310803,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "580d31c4-e3db-40f3-969d-9a1caea9d1bb",
|
|
||||||
"name": "Remove posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "remove",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310814,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310814,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c1f8b024-e383-494a-835d-6fb673f143db",
|
|
||||||
"name": "Create posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "create",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310818,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310818,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions_users": [],
|
|
||||||
"permissions_roles": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "f90aa810-4fa2-49fe-a39b-7c0d2ebb473e",
|
|
||||||
"key": "databaseVersion",
|
|
||||||
"value": "001",
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "95ce1c53-69b0-4f5f-be91-d3aeb39046b5",
|
|
||||||
"key": "dbHash",
|
|
||||||
"value": null,
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c356fbde-0bc5-4fe1-9309-2510291aa34d",
|
|
||||||
"key": "title",
|
|
||||||
"value": "Ghost",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"uuid": "858dc11f-8f9e-4011-99ee-d94c48d5a2ce",
|
|
||||||
"key": "description",
|
|
||||||
"value": "Just a blogging platform.",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5,
|
|
||||||
"uuid": "37ca5ae7-bca6-4dd5-8021-4ef6c6dcb097",
|
|
||||||
"key": "email",
|
|
||||||
"value": "josephinebloggs@example.com",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6,
|
|
||||||
"uuid": "1672d62c-fab7-4f22-b333-8cf760189f67",
|
|
||||||
"key": "logo",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7,
|
|
||||||
"uuid": "cd8b0456-578b-467a-857e-551bad17a14d",
|
|
||||||
"key": "cover",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8,
|
|
||||||
"uuid": "c4a074a4-05c7-49f7-83eb-068302c15d82",
|
|
||||||
"key": "defaultLang",
|
|
||||||
"value": "en_US",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 9,
|
|
||||||
"uuid": "21f2f5da-9bee-4dae-b3b7-b8d7baf8be33",
|
|
||||||
"key": "postsPerPage",
|
|
||||||
"value": "6",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10,
|
|
||||||
"uuid": "2d21b736-f85a-4119-a0e3-5fc898b1bf47",
|
|
||||||
"key": "forceI18n",
|
|
||||||
"value": "true",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 11,
|
|
||||||
"uuid": "5c5b91b8-6062-4104-b855-9e121f72b0f0",
|
|
||||||
"key": "permalinks",
|
|
||||||
"value": "/:slug/",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12,
|
|
||||||
"uuid": "795cb328-3e38-4906-81a8-fcdff19d914f",
|
|
||||||
"key": "activeTheme",
|
|
||||||
"value": "notcasper",
|
|
||||||
"type": "theme",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 13,
|
|
||||||
"uuid": "f3afce35-5166-453e-86c3-50dfff74dca7",
|
|
||||||
"key": "activeApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 14,
|
|
||||||
"uuid": "2ea560a3-2304-449d-a62b-f7b622987510",
|
|
||||||
"key": "installedApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
@ -353,44 +102,6 @@
|
||||||
"post_id": 1,
|
"post_id": 1,
|
||||||
"tag_id": 2
|
"tag_id": 2
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"apps": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "4d7557f0-0949-4946-9fe8-ec030e0727f0",
|
|
||||||
"name": "Kudos",
|
|
||||||
"slug": "kudos",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"status": "installed",
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"app_settings": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "790e4551-b9cc-4954-8f5d-b6e651bc7342",
|
|
||||||
"key": "position",
|
|
||||||
"value": "bottom",
|
|
||||||
"app_id": 1,
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "29682b66-cdeb-4773-9821-bcf40ea93b58",
|
|
||||||
"key": "size",
|
|
||||||
"value": "60",
|
|
||||||
"app_id": 1,
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,282 +28,6 @@
|
||||||
"published_by": 1
|
"published_by": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"users": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "e5188224-4742-4c32-a2d6-e9c5c5d4c123",
|
|
||||||
"name": "Josephine Bloggs",
|
|
||||||
"slug": "josephine-blogs",
|
|
||||||
"password": "$2a$10$.pZeeBE0gHXd0PTnbT/ph.GEKgd0Wd3q2pWna3ynTGBkPKnGIKABC",
|
|
||||||
"email": "josephinebloggs@example.com",
|
|
||||||
"image": null,
|
|
||||||
"cover": null,
|
|
||||||
"bio": "A blogger",
|
|
||||||
"website": null,
|
|
||||||
"location": null,
|
|
||||||
"accessibility": null,
|
|
||||||
"status": "active",
|
|
||||||
"language": "en_US",
|
|
||||||
"meta_title": null,
|
|
||||||
"meta_description": null,
|
|
||||||
"last_login": null,
|
|
||||||
"created_at": 1388319501897,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": null,
|
|
||||||
"updated_by": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"roles": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "d2ea9c7f-7e6b-4cae-b009-35c298206852",
|
|
||||||
"name": "Administrator",
|
|
||||||
"description": "Administrators",
|
|
||||||
"created_at": 1388318310794,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310794,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "b0d7d6b0-5b88-45b5-b0e5-a487741b843d",
|
|
||||||
"name": "Editor",
|
|
||||||
"description": "Editors",
|
|
||||||
"created_at": 1388318310796,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310796,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "9f72e817-5490-4ccf-bc78-c557dc9613ca",
|
|
||||||
"name": "Author",
|
|
||||||
"description": "Authors",
|
|
||||||
"created_at": 1388318310799,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310799,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"roles_users": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"user_id": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "bdfbd261-e0fb-4c8e-abab-aece7a9e8e34",
|
|
||||||
"name": "Edit posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "edit",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310803,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310803,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "580d31c4-e3db-40f3-969d-9a1caea9d1bb",
|
|
||||||
"name": "Remove posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "remove",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310814,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310814,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c1f8b024-e383-494a-835d-6fb673f143db",
|
|
||||||
"name": "Create posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "create",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310818,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310818,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions_users": [],
|
|
||||||
"permissions_roles": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "f90aa810-4fa2-49fe-a39b-7c0d2ebb473e",
|
|
||||||
"key": "databaseVersion",
|
|
||||||
"value": "001",
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "95ce1c53-69b0-4f5f-be91-d3aeb39046b5",
|
|
||||||
"key": "dbHash",
|
|
||||||
"value": null,
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c356fbde-0bc5-4fe1-9309-2510291aa34d",
|
|
||||||
"key": "title",
|
|
||||||
"value": "Ghost",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"uuid": "858dc11f-8f9e-4011-99ee-d94c48d5a2ce",
|
|
||||||
"key": "description",
|
|
||||||
"value": "Just a blogging platform.",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5,
|
|
||||||
"uuid": "37ca5ae7-bca6-4dd5-8021-4ef6c6dcb097",
|
|
||||||
"key": "email",
|
|
||||||
"value": "josephinebloggs@example.com",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6,
|
|
||||||
"uuid": "1672d62c-fab7-4f22-b333-8cf760189f67",
|
|
||||||
"key": "logo",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7,
|
|
||||||
"uuid": "cd8b0456-578b-467a-857e-551bad17a14d",
|
|
||||||
"key": "cover",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8,
|
|
||||||
"uuid": "c4a074a4-05c7-49f7-83eb-068302c15d82",
|
|
||||||
"key": "defaultLang",
|
|
||||||
"value": "en_US",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 9,
|
|
||||||
"uuid": "21f2f5da-9bee-4dae-b3b7-b8d7baf8be33",
|
|
||||||
"key": "postsPerPage",
|
|
||||||
"value": "6",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10,
|
|
||||||
"uuid": "2d21b736-f85a-4119-a0e3-5fc898b1bf47",
|
|
||||||
"key": "forceI18n",
|
|
||||||
"value": "true",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 11,
|
|
||||||
"uuid": "5c5b91b8-6062-4104-b855-9e121f72b0f0",
|
|
||||||
"key": "permalinks",
|
|
||||||
"value": "/:slug/",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12,
|
|
||||||
"uuid": "795cb328-3e38-4906-81a8-fcdff19d914f",
|
|
||||||
"key": "activeTheme",
|
|
||||||
"value": "notcasper",
|
|
||||||
"type": "theme",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 13,
|
|
||||||
"uuid": "f3afce35-5166-453e-86c3-50dfff74dca7",
|
|
||||||
"key": "activeApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 14,
|
|
||||||
"uuid": "2ea560a3-2304-449d-a62b-f7b622987510",
|
|
||||||
"key": "installedApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
@ -345,44 +69,6 @@
|
||||||
"post_id": 1,
|
"post_id": 1,
|
||||||
"tag_id": 2
|
"tag_id": 2
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"apps": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "4d7557f0-0949-4946-9fe8-ec030e0727f0",
|
|
||||||
"name": "Kudos",
|
|
||||||
"slug": "kudos",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"status": "installed",
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"app_settings": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "790e4551-b9cc-4954-8f5d-b6e651bc7342",
|
|
||||||
"key": "position",
|
|
||||||
"value": "bottom",
|
|
||||||
"app_id": 1,
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "29682b66-cdeb-4773-9821-bcf40ea93b58",
|
|
||||||
"key": "size",
|
|
||||||
"value": "60",
|
|
||||||
"app_id": 1,
|
|
||||||
"created_at": 1388318312790,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318312790,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,218 +157,6 @@
|
||||||
"user_id": 1
|
"user_id": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "bdfbd261-e0fb-4c8e-abab-aece7a9e8e34",
|
|
||||||
"name": "Edit posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "edit",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310803,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310803,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "580d31c4-e3db-40f3-969d-9a1caea9d1bb",
|
|
||||||
"name": "Remove posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "remove",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310814,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310814,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c1f8b024-e383-494a-835d-6fb673f143db",
|
|
||||||
"name": "Create posts",
|
|
||||||
"object_type": "post",
|
|
||||||
"action_type": "create",
|
|
||||||
"object_id": null,
|
|
||||||
"created_at": 1388318310818,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310818,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"permissions_users": [],
|
|
||||||
"permissions_roles": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"role_id": 1,
|
|
||||||
"permission_id": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"uuid": "f90aa810-4fa2-49fe-a39b-7c0d2ebb473e",
|
|
||||||
"key": "databaseVersion",
|
|
||||||
"value": "001",
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"uuid": "95ce1c53-69b0-4f5f-be91-d3aeb39046b5",
|
|
||||||
"key": "dbHash",
|
|
||||||
"value": null,
|
|
||||||
"type": "core",
|
|
||||||
"created_at": 1388318310829,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310829,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"uuid": "c356fbde-0bc5-4fe1-9309-2510291aa34d",
|
|
||||||
"key": "title",
|
|
||||||
"value": "Ghost",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"uuid": "858dc11f-8f9e-4011-99ee-d94c48d5a2ce",
|
|
||||||
"key": "description",
|
|
||||||
"value": "Just a blogging platform.",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5,
|
|
||||||
"uuid": "37ca5ae7-bca6-4dd5-8021-4ef6c6dcb097",
|
|
||||||
"key": "email",
|
|
||||||
"value": "josephinebloggs@example.com",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6,
|
|
||||||
"uuid": "1672d62c-fab7-4f22-b333-8cf760189f67",
|
|
||||||
"key": "logo",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7,
|
|
||||||
"uuid": "cd8b0456-578b-467a-857e-551bad17a14d",
|
|
||||||
"key": "cover",
|
|
||||||
"value": "",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8,
|
|
||||||
"uuid": "c4a074a4-05c7-49f7-83eb-068302c15d82",
|
|
||||||
"key": "defaultLang",
|
|
||||||
"value": "en_US",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 9,
|
|
||||||
"uuid": "21f2f5da-9bee-4dae-b3b7-b8d7baf8be33",
|
|
||||||
"key": "postsPerPage",
|
|
||||||
"value": "6",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310830,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310830,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10,
|
|
||||||
"uuid": "2d21b736-f85a-4119-a0e3-5fc898b1bf47",
|
|
||||||
"key": "forceI18n",
|
|
||||||
"value": "true",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 11,
|
|
||||||
"uuid": "5c5b91b8-6062-4104-b855-9e121f72b0f0",
|
|
||||||
"key": "permalinks",
|
|
||||||
"value": "/:slug/",
|
|
||||||
"type": "blog",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12,
|
|
||||||
"uuid": "795cb328-3e38-4906-81a8-fcdff19d914f",
|
|
||||||
"key": "activeTheme",
|
|
||||||
"value": "notcasper",
|
|
||||||
"type": "theme",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 13,
|
|
||||||
"uuid": "f3afce35-5166-453e-86c3-50dfff74dca7",
|
|
||||||
"key": "activeApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 14,
|
|
||||||
"uuid": "2ea560a3-2304-449d-a62b-f7b622987510",
|
|
||||||
"key": "installedApps",
|
|
||||||
"value": "[]",
|
|
||||||
"type": "plugin",
|
|
||||||
"created_at": 1388318310831,
|
|
||||||
"created_by": 1,
|
|
||||||
"updated_at": 1388318310831,
|
|
||||||
"updated_by": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
@ -431,4 +219,4 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue