Skip to content

Commit

Permalink
update icon field of tag and category, upd config, removed discarded …
Browse files Browse the repository at this point in the history
…permSum merging
  • Loading branch information
SorenEricMent committed Jan 15, 2023
1 parent c00a95a commit a422549
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 178 deletions.
42 changes: 22 additions & 20 deletions blorum.sql
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ CREATE TABLE `articles` (
--

INSERT INTO `articles` (`aid`, `uid`, `title`, `content`, `excerpt`, `tags`, `category`, `status`, `history`, `statistics`, `slug`) VALUES
(0, 0, '_blorum_root', '', '', '', '', '{}', '{}', '{}', NULL);
(0, 0, '__blorum_root', '', '', '', '', '{}', '{}', '{}', NULL);

-- --------------------------------------------------------

Expand All @@ -47,6 +47,7 @@ CREATE TABLE `categories` (
`cid` int UNSIGNED NOT NULL,
`type` tinyint NOT NULL,
`name` varchar(64) NOT NULL,
`icon` varchar(128) NOT NULL,
`parent` text NOT NULL,
`children` text NOT NULL,
`statistics` json NOT NULL
Expand All @@ -57,7 +58,19 @@ CREATE TABLE `categories` (
--

INSERT INTO `categories` (`cid`, `type`, `name`, `parent`, `children`, `statistics`) VALUES
(1, 0, '_blorum_root', '', '', '{}');
(0, 0, '__blorum_root', '', '', '{}');

-- --------------------------------------------------------

--
-- Table structure for table `tags`
--

CREATE TABLE `tags` (
`name` varchar(64) NOT NULL,
`icon` varchar(128) NOT NULL,
`statistics` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

-- --------------------------------------------------------

Expand Down Expand Up @@ -213,7 +226,7 @@ CREATE TABLE `forum` (
`root_categories` text NOT NULL,
`pin` json NOT NULL,
`statistics` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

-- --------------------------------------------------------

Expand Down Expand Up @@ -257,7 +270,7 @@ CREATE TABLE `notes` (
`uid` int UNSIGNED NOT NULL,
`content` tinytext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`history` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

--
-- Dumping data for table `notes`
Expand All @@ -284,7 +297,7 @@ CREATE TABLE `posts` (
`statistics` json NOT NULL,
`history` json NOT NULL,
`status` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

--
-- Dumping data for table `posts`
Expand Down Expand Up @@ -376,7 +389,7 @@ CREATE TABLE `rv_comments_p` (
`children` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`type` tinyint NOT NULL,
`history` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

-- --------------------------------------------------------

Expand All @@ -392,7 +405,7 @@ CREATE TABLE `rv_comments_u` (
`content` json NOT NULL,
`type` tinyint NOT NULL,
`history` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

-- --------------------------------------------------------

Expand All @@ -410,7 +423,7 @@ CREATE TABLE `rv_posts` (
`is_conversation` tinyint(1) NOT NULL DEFAULT '0',
`viewer` json DEFAULT NULL,
`history` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

-- --------------------------------------------------------

Expand All @@ -421,18 +434,7 @@ CREATE TABLE `rv_posts` (
CREATE TABLE `statistics` (
`name` varchar(64) NOT NULL,
`value` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

-- --------------------------------------------------------

--
-- Table structure for table `tags`
--

CREATE TABLE `tags` (
`name` varchar(64) NOT NULL,
`statistics` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
) ENGINE=InnoDB DEFAULT CHARSET=uft8mb4;

-- --------------------------------------------------------

Expand Down
14 changes: 14 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,19 @@
"port": 6379,
"password": "REDIS_PASSWORD"
}
},
"builtin_cache": {
"enabled": true,
"parameters": {
"circumstance_1": {

},
"circumstance_2": {

},
"circumstance_3": {

}
}
}
}
159 changes: 1 addition & 158 deletions modules/utils.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -357,164 +357,7 @@ function getPermissionSum(arr) {
}
}
};
let sets = {
"flag": new Set(),
"user_permission_read_allow": new Set(),
"user_role_read_allow": new Set(),
"role_read_allow": new Set(),
"role_grant_allow": new Set(),
"role_remove_allow": new Set(),
"article_read_category_allow": new Set(),
"article_read_tag_allow": new Set(),
"article_create_category_allow": new Set(),
"article_create_tag_allow": new Set(),
"forum_default_read_category_allow": new Set(),
"forum_default_read_tag_allow": new Set(),
"comment_post_tag_allow": new Set(),
"comment_post_category_allow": new Set()

};
let isRateLimitContained = false;
var arrLen = arr.length;
//The following part is generated to ensure the best performance, do not "optimize" it
for (var i = 0; i < arrLen; i++) {
let perm = arr[i];
if (perm.with_rate_limit === 1) {
isRateLimitContained = true;
}
//Flag processing
let flagLen = perm.permissions.flags.length;
for (var j = 0; j < flagLen; j++) {
sets.flag.add(perm.permissions.flags[j]);
}
let user_permission_read_allowLen = perm.permissions.user.permission.read.allow.length;
for (var j = 0; j < user_permission_read_allowLen; j++) {
sets.user_permission_read_allow.add(perm.permissions.user.permission.read.allow[j]);
}
let user_role_read_allowLen = perm.permissions.user.role.read.allow.length;
for (var j = 0; j < user_role_read_allowLen; j++) {
sets.user_role_read_allow.add(perm.permissions.user.role.read.allow[j]);
}
let role_read_allowLen = perm.permissions.role.read.allow.length;
for (var j = 0; j < role_read_allowLen; j++) {
sets.role_read_allow.add(perm.permissions.role.read.allow[j]);
}
let role_grant_allowLen = perm.permissions.role.grant.allow.length;
for (var j = 0; j < role_grant_allowLen; j++) {
sets.role_grant_allow.add(perm.permissions.role.grant.allow[j]);
}
let role_remove_allowLen = perm.permissions.role.remove.allow.length;
for (var j = 0; j < role_remove_allowLen; j++) {
sets.role_remove_allow.add(perm.permissions.role.remove.allow[j]);
}
let article_read_category_allowLen = perm.permissions.article.read.category.allow.length;
for (var j = 0; j < article_read_category_allowLen; j++) {
sets.article_read_category_allow.add(perm.permissions.article.read.category.allow[j]);
}
let article_read_tag_allowLen = perm.permissions.article.read.tag.allow.length;
for (var j = 0; j < article_read_tag_allowLen; j++) {
sets.article_read_tag_allow.add(perm.permissions.article.read.tag.allow[j]);
}
let article_create_category_allowLen = perm.permissions.article.create.category.allow.length;
for (var j = 0; j < article_create_category_allowLen; j++) {
sets.article_create_category_allow.add(perm.permissions.article.create.category.allow[j]);
}
let article_create_tag_allowLen = perm.permissions.article.create.tag.allow.length;
for (var j = 0; j < article_create_tag_allowLen; j++) {
sets.article_create_tag_allow.add(perm.permissions.article.create.tag.allow[j]);
}
let forum_default_read_category_allowLen = perm.permissions.forum.default.read.category.allow.length;
for (var j = 0; j < forum_default_read_category_allowLen; j++) {
sets.forum_default_read_category_allow.add(perm.permissions.forum.default.read.category.allow[j]);
}
let forum_default_read_tag_allowLen = perm.permissions.forum.default.read.tag.allow.length;
for (var j = 0; j < forum_default_read_tag_allowLen; j++) {
sets.forum_default_read_tag_allow.add(perm.permissions.forum.default.read.tag.allow[j]);
}
let comment_post_tag_allowLen = perm.permissions.comment.post.tag.allow.length;
for (var j = 0; j < comment_post_tag_allowLen; j++) {
sets.comment_post_tag_allow.add(perm.permissions.comment.post.tag.allow[j]);
}
let comment_post_category_allowLen = perm.permissions.comment.post.category.allow.length;
for (var j = 0; j < comment_post_category_allowLen; j++) {
sets.comment_post_category_allow.add(perm.permissions.comment.post.category.allow[j]);
}
permSum.permissions.flags = Array.from(sets.flag);
permSum.permissions.user.permission.read.allow = Array.from(sets.user_permission_read_allow);
permSum.permissions.user.role.read.allow = Array.from(sets.user_role_read_allow);
permSum.permissions.role.read.allow = Array.from(sets.role_read_allow);
permSum.permissions.role.grant.allow = Array.from(sets.role_grant_allow);
permSum.permissions.role.remove.allow = Array.from(sets.role_remove_allow);
permSum.permissions.article.read.category.allow = Array.from(sets.article_read_category_allow);
permSum.permissions.article.read.tag.allow = Array.from(sets.article_read_tag_allow);
permSum.permissions.article.create.category.allow = Array.from(sets.article_create_category_allow);
permSum.permissions.article.create.tag.allow = Array.from(sets.article_create_tag_allow);
permSum.permissions.forum.default.read.category.allow = Array.from(sets.forum_default_read_category_allow);
permSum.permissions.forum.default.read.tag.allow = Array.from(sets.forum_default_read_tag_allow);
permSum.permissions.comment.post.tag.allow = Array.from(sets.comment_post_tag_allow);
permSum.permissions.comment.post.category.allow = Array.from(sets.comment_post_category_allow);


//Value processing
if(perm.permissions.max_session > permSum.permissions.max_session) permSum.permissions.max_session = perm.permissions.max_session;
if(perm.permissions.cookie_expire_after > permSum.permissions.cookie_expire_after) permSum.permissions.cookie_expire_after = perm.permissions.cookie_expire_after;
if(perm.permissions.user.permission.read.default > permSum.permissions.user.permission.read.default) permSum.permissions.user.permission.read.default = perm.permissions.user.permission.read.default;
if(perm.permissions.user.role.read.default > permSum.permissions.user.role.read.default) permSum.permissions.user.role.read.default = perm.permissions.user.role.read.default;
if(perm.permissions.role.read.default > permSum.permissions.role.read.default) permSum.permissions.role.read.default = perm.permissions.role.read.default;
if(perm.permissions.role.grant.level > permSum.permissions.role.grant.level) permSum.permissions.role.grant.level = perm.permissions.role.grant.level;
if(perm.permissions.role.remove.level > permSum.permissions.role.remove.level) permSum.permissions.role.remove.level = perm.permissions.role.remove.level;
if(perm.permissions.article.read.default > permSum.permissions.article.read.default) permSum.permissions.article.read.default = perm.permissions.article.read.default;
if(perm.permissions.article.create.default > permSum.permissions.article.create.default) permSum.permissions.article.create.default = perm.permissions.article.create.default;
if(perm.permissions.comment.user.default > permSum.permissions.comment.user.default) permSum.permissions.comment.user.default = perm.permissions.comment.user.default;
if(perm.permissions.comment.article.default > permSum.permissions.comment.article.default) permSum.permissions.comment.article.default = perm.permissions.comment.article.default;
if(perm.permissions.tag.create > permSum.permissions.tag.create) permSum.permissions.tag.create = perm.permissions.tag.create;
if(perm.permissions.tag.remove > permSum.permissions.tag.remove) permSum.permissions.tag.remove = perm.permissions.tag.remove;
if(perm.permissions.tag.add.article > permSum.permissions.tag.add.article) permSum.permissions.tag.add.article = perm.permissions.tag.add.article;
if(perm.permissions.tag.add.post > permSum.permissions.tag.add.post) permSum.permissions.tag.add.post = perm.permissions.tag.add.post;
if(perm.permissions.report.create > permSum.permissions.report.create) permSum.permissions.report.create = perm.permissions.report.create;
if(perm.permissions.log.read > permSum.permissions.log.read) permSum.permissions.log.read = perm.permissions.log.read;
}
if(isRateLimitContained) {
permSum.with_rate_limit = 1;
for (var i = 0; i < arrLen; i++) {
let perm = arr[i];
if(perm.rate_limits.login > permSum.rate_limits.login) permSum.rate_limits.login = perm.rate_limits.login;
if(perm.rate_limits.invite > permSum.rate_limits.invite) permSum.rate_limits.invite = perm.rate_limits.invite;
if(perm.rate_limits.report > permSum.rate_limits.report) permSum.rate_limits.report = perm.rate_limits.report;
if(perm.rate_limits.edit.post.self > permSum.rate_limits.edit.post.self) permSum.rate_limits.edit.post.self = perm.rate_limits.edit.post.self;
if(perm.rate_limits.edit.post.tag > permSum.rate_limits.edit.post.tag) permSum.rate_limits.edit.post.tag = perm.rate_limits.edit.post.tag;
if(perm.rate_limits.edit.post.category > permSum.rate_limits.edit.post.category) permSum.rate_limits.edit.post.category = perm.rate_limits.edit.post.category;
if(perm.rate_limits.edit.post.forum > permSum.rate_limits.edit.post.forum) permSum.rate_limits.edit.post.forum = perm.rate_limits.edit.post.forum;
if(perm.rate_limits.edit.article.self > permSum.rate_limits.edit.article.self) permSum.rate_limits.edit.article.self = perm.rate_limits.edit.article.self;
if(perm.rate_limits.edit.article.tag > permSum.rate_limits.edit.article.tag) permSum.rate_limits.edit.article.tag = perm.rate_limits.edit.article.tag;
if(perm.rate_limits.edit.article.category > permSum.rate_limits.edit.article.category) permSum.rate_limits.edit.article.category = perm.rate_limits.edit.article.category;
if(perm.rate_limits.edit.comment > permSum.rate_limits.edit.comment) permSum.rate_limits.edit.comment = perm.rate_limits.edit.comment;
if(perm.rate_limits.edit.note > permSum.rate_limits.edit.note) permSum.rate_limits.edit.note = perm.rate_limits.edit.note;
if(perm.rate_limits.edit.user > permSum.rate_limits.edit.user) permSum.rate_limits.edit.user = perm.rate_limits.edit.user;
if(perm.rate_limits.edit.category > permSum.rate_limits.edit.category) permSum.rate_limits.edit.category = perm.rate_limits.edit.category;
if(perm.rate_limits.edit.forum > permSum.rate_limits.edit.forum) permSum.rate_limits.edit.forum = perm.rate_limits.edit.forum;
if(perm.rate_limits.create.category > permSum.rate_limits.create.category) permSum.rate_limits.create.category = perm.rate_limits.create.category;
if(perm.rate_limits.create.post > permSum.rate_limits.create.post) permSum.rate_limits.create.post = perm.rate_limits.create.post;
if(perm.rate_limits.create.react > permSum.rate_limits.create.react) permSum.rate_limits.create.react = perm.rate_limits.create.react;
if(perm.rate_limits.create.article > permSum.rate_limits.create.article) permSum.rate_limits.create.article = perm.rate_limits.create.article
if(perm.rate_limits.create.comment > permSum.rate_limits.create.comment) permSum.rate_limits.create.comment = perm.rate_limits.create.comment;
if(perm.rate_limits.create.note > permSum.rate_limits.create.note) permSum.rate_limits.create.note = perm.rate_limits.create.note;
if(perm.rate_limits.create.forum > permSum.rate_limits.create.forum) permSum.rate_limits.create.forum = perm.rate_limits.create.forum;
if(perm.rate_limits.create.report > permSum.rate_limits.create.report) permSum.rate_limits.create.report = perm.rate_limits.create.report;
if(perm.rate_limits.create.user > permSum.rate_limits.create.user) permSum.rate_limits.create.user = perm.rate_limits.create.user;
if(perm.rate_limits.remove.category > permSum.rate_limits.remove.category) permSum.rate_limits.remove.category = perm.rate_limits.remove.category;
if(perm.rate_limits.remove.post > permSum.rate_limits.remove.post) permSum.rate_limits.remove.post = perm.rate_limits.remove.post;
if(perm.rate_limits.remove.react > permSum.rate_limits.remove.react) permSum.rate_limits.remove.react = perm.rate_limits.remove.react;
if(perm.rate_limits.remove.article > permSum.rate_limits.remove.article) permSum.rate_limits.remove.article = perm.rate_limits.remove.article;
if(perm.rate_limits.remove.comment > permSum.rate_limits.remove.comment) permSum.rate_limits.remove.comment = perm.rate_limits.remove.comment;
if(perm.rate_limits.remove.note > permSum.rate_limits.remove.note) permSum.rate_limits.remove.note = perm.rate_limits.remove.note;
if(perm.rate_limits.remove.forum > permSum.rate_limits.remove.forum) permSum.rate_limits.remove.forum = perm.rate_limits.remove.forum;
if(perm.rate_limits.remove.report > permSum.rate_limits.remove.report) permSum.rate_limits.remove.report = perm.rate_limits.remove.report;
if(perm.rate_limits.remove.user > permSum.rate_limits.remove.user) permSum.rate_limits.remove.user = perm.rate_limits.remove.user;
if(perm.rate_limits.site.change_config > permSum.rate_limits.site.change_config) permSum.rate_limits.site.change_config = perm.rate_limits.site.change_config;

}
}
//TODO: update permission sum
return permSum;
}

Expand Down

0 comments on commit a422549

Please sign in to comment.