Commit Graph

78 Commits

Author SHA1 Message Date
78860a54b3
chore: add docker ignore 2022-03-16 18:12:23 +08:00
84503130db
refactor: docker compose 2022-03-16 09:00:39 +00:00
e46ff8b152
chore: ignore data 2022-03-16 05:36:54 +00:00
9ebd1ad7e3
fix(web): login captcha 2022-03-16 05:36:10 +00:00
c525b570ad
fix(web): [CSP] upgrade-insecure-requests 2022-03-16 05:27:06 +00:00
090747fa4d
chore: replace git repo url 2022-03-14 13:55:09 +00:00
0bf1a2f998
feat: add captcha 2022-03-14 13:49:48 +00:00
billchenchina
0d931e270b
fix(lint): make ci happy 2021-09-10 00:18:21 +08:00
billchenchina
dcd0d0b66e
fix(web): syntax error in /reset-password 2021-09-09 22:07:17 +08:00
billchenchina
e357d1cb91
fix(web): json_encode for REQUEST_URI enter in /reset-password
Ref: https://huntr.dev/bounties/75bd6901-5760-412d-96fc-b664e4644fea/
2021-09-09 21:38:08 +08:00
billchenchina
ebf541ab91
fix(web): json_encode for input enter in /user/msg
This commit fixes #79.
Ref: https://huntr.dev/bounties/a2b63a25-385f-4f4e-b790-d910b90718f7/
2021-09-09 21:25:54 +08:00
billchenchina
9edd28541e
Create SECURITY.md 2021-09-09 18:18:58 +08:00
billchenchina
230738b770 Merge branch 'develop' 2020-07-14 13:39:58 +00:00
Leo Lu
586466fe2c Upadted php-cs-fixer 2020-07-02 23:12:06 +08:00
Leo Lu
4488004d72 Added action to check style 2020-07-02 23:12:06 +08:00
Leo Lu
b8f82be3dc Reformated with php-cs-fixer 2020-07-02 23:12:06 +08:00
Masco Skray
9a6f16cf1d
chore(install): switch to fetch Ubuntu 20.04 image in Dockerfile
Only a simple number modify just as the title said.
2020-05-01 23:40:16 +08:00
Masco Skray
6286e41c11
feat(install): experimental Ubuntu 20.04 support
Since the phpv8-v8js plugin did not fully support PHP 7.4 and there is no new package on pecl...
Every time we need to make some 魔改 on this because official provided versions are always too old...
2020-05-01 23:40:11 +08:00
Masco Skray
8ca70fc87c fix(judger): support Java updated to 8u222 and 11.0.4
Allow reading cpu,cpuacct and new syscall requirement.
2019-10-01 10:10:00 +08:00
Masco Skray
a74f687824 feat(web): add judger management in super_manage
You can add or delete judger information at this page.
It will give a password to you, then you can use it to set up new judger.
2019-09-12 18:12:01 +08:00
Masco Skray
301bebd3eb chore(web): make stickers offline
If you are in an internal network, stickers may not shown.
Add them into images so we can use them at offline situations.
2019-09-10 10:25:08 +08:00
Masco Skray
c49b69aa86 style(web): upgrade to Bootstrap 4 view with new artworks
Let's welcome brand new look made by Bootstrap 4!
Not only website but also our logo is being flat now.
The new logo uses blue as main color, to be different from original.
For us, it also shows the project has up to a new stage.
We hope that the project will get better and better.

BREAKING CHANGE: The path for users to place their images is renamed.
Logos are saved as new names too. Users should move "pictures" to "images".
Any modifications should suit the Bootstrap 4's standard.
2019-09-10 10:25:07 +08:00
Masco Skray
bd74ed3f51 fix(web/app/controllers): do not move if there is any file in zip (#49)
There are some situations that need to place subfolder in data path.
If there is any file but not only folder in path, do not move.
Previous moving logic did not check about this.
2019-08-02 19:10:07 +08:00
Masco Skray
73aec02216 feat(install): add options to choose which judger component to build
For only web, there is no need to build checkers.
There are so many checkers that will slow down make speed.
Also for some situations, users can build checkers without runners.
2019-07-16 18:28:00 +08:00
Masco Skray
d413b746eb chore(install): separate services with docker-compose support
Without bundle, now you can choose to download single container.
For example, you can only download judger container to setup a new judger.
Also, the web container now no db and judger containing, except local sandbox.
You can use docker-compose to get every single container work together from now.
Single DB this time uses the latest MySQL 8 version, so some preferences are different.
2019-07-16 17:26:05 +08:00
Masco Skray
28cd4ef8b8 style(web,install): set repo clone dir as work dir
Clone repository files to /opt, and make this as work dir.
Can save disk space, make folder tidy, and easy to access.
2019-07-16 10:48:02 +08:00
Masco Skray
fb6cae057c chore(web): set runtime version on faq page
The runtime versions on faq page are very old and not edited.
If judger is not with web, we can't determine the exact version.
So set these versions as default show, won't be too much different.
2019-07-16 10:38:08 +08:00
Masco Skray
d92f7b1177 fix(install): mend bundle installation scripts
With thesedays' modify, installation scripts are not working properly.
Now do some modify, and set the default workdir to /opt.
2019-07-15 23:30:00 +08:00
Masco Skray
6cd6f10f6e style(web,install): change judge_client work path
When move out judger from bundle, no need to create judger account.
So these work paths will no longer exist. Prepare for future.
2019-07-15 16:19:05 +08:00
Masco Skray
2156cdffef feat(web): add a new way to access blog
We add a new way to access blog page. Now there are 3.
The switch now uses number to choose the way.
1 is for subdomain and 3 is for subfolder.
2 is for separated blog domain with its subfolder.
For example, mike's link is blog.xxx.xxx/mike.
Blog list page link on navbar will change by domain mode.
2019-07-12 14:30:00 +08:00
Masco Skray
0854940fe0 style(web): change link location of blog functions
When using sub-directory blog, the 'blogof' not looks so good.
And, there are duplicate 'blog' characters, which making people uncomfortable.
So, for sub-directory blog, use 'blog' instead of 'blogof'.
'blog' is not as a sub folder or type anymore, use 'post' instead.

BREAKING CHANGE: Due to the conflict of 'blog' sub-directory, when go to blog post,
now should use 'blogs/{id}'; but when subdomain mode is on, you can still use 'blog'
to access these blog posts. 'blogof' is no longer used, and you need to inform users
that blog link is changed, to avoid the inaccessbility.
2019-07-12 12:13:30 +08:00
Masco Skray
46c8644a6e feat(web): support utf8mb4 character set (#39)
The utf8 set in MySQL is not real UTF-8.
Use utf8mb4 character set instead of utf8.
妈妈再也不用担心写东西用不了 Emoji 了~

BREAKING CHANGE: Old databases and tables need to be upgraded.
Better not use old database structure with new connect parameters.
2019-07-10 12:14:45 +08:00
Masco Skray
f72d0fda6c style(web): merge contests_asks table into main sql file
The web interface is merged but the table is not.
Merge it into a single SQL file, without execute PHP.
Redumped database structure with mysqldump command.
2019-07-10 11:04:51 +08:00
Masco Skray
50f26075ac style(web/app/controllers): subfolder move command as a single line
8 lines are too much. Why not make it into one line?
2019-07-10 10:58:15 +08:00
Masco Skray
a522d58f1d feat(install): separate judge apache access log to another file
When judger is polling, there will be many items under access log file.
It makes access log file very big and makes us difficult to check the log.
Move judge access log to another single file, make it easier to manage log files.
2019-07-08 13:20:30 +08:00
Masco Skray
e030a23ecb fix(install): support v8js upgrade to 2.1.1
The latest v8js 2.1.1 needs libv8 to be 6.9 or newer.
This fix applies new ppa source and installs libv8 7.5.
2019-07-08 12:56:08 +08:00
Masco Skray
a642895253 style(judger,web): do not specify minor version to Python2
Python 2 is Python 2, Python 2.7 is also Python 2.
So why Python 2.7 is Python 2.7?
Make things tidy.
2019-06-28 16:40:41 +08:00
Masco Skray
d030c261b2 feat(judger,web): drop Java7, add Java11 with OpenJDK
Java 7 is now out of support. A large number of people use Java 8.
As the latest Java LTS version, now add support for Java 11.
Due to the policies from Oracle, SunJDK is replaced.
2019-06-28 16:00:40 +08:00
Masco Skray
d650f87f32 feat(judger): upgrade judge_client from py2 to py3
Upgrade judge_client from Python 2 to Python 3.
Add back and support a new judger update method.
Remove the Makefile outside of the folder which not contain any C file.
2019-06-28 14:00:20 +08:00
Masco Skray
c603c41e00 style(web): disable hack by default
Users rarely use hack, but it is enabled by default.
They need to disable it manually, and there are also many people do not now why should disable it.
Make the hack function disabled when creating a new problem.
2019-06-14 23:41:40 +08:00
Masco Skray
96d4a3ecf7 style(judger,web): move code out from subfolder "1"
Due to historical reasons, the code is in subfolder "1".
With SVN removal, we place the code back and remove the annoying "1" folder.
2019-06-14 23:34:41 +08:00
mcfx0
69912ba9b3 feat(install, svn): remove svn (#45)
* feat(install, svn): remove svn

Remove everything related to svn.
Rename uoj-svn-lib to uoj-data-lib.
Save preparing problem data to /var/uoj_data/prepare/problem_id.

* Typo: uoj_date -> uoj_data

* add: backward compatibility

BREAKING CHANGE: Preparing problem data location is changed
You need to move files from /var/svn/problem/{id}/cur/{id}/1 to
/var/uoj_data/upload/{id}
2019-06-14 23:30:02 +08:00
Linfei Lee
94fbfea97f fix(support IOI competition system):#6 (#33) 2019-06-11 11:03:53 +08:00
EarringYYR
ec54596ab4 feat(problem.php): Suppot show limits (#32)
The system will get the time_limit and memory_limit from problem.conf automatically. In addition, the problem that doesn't have any data will show: time_limit: N/A memory_limit: N/A
2019-06-11 10:59:04 +08:00
Kaifeng Lyu
9c21c957c9 fix(UOJContext.php): fix the bug that "page expires" occurs when accessing by localhost (#41)
To support subdomain cookies, an extra "." is added to the domain when setting the cookies.
However, this strategy fails on "localhost", because browsers do not recognize ".localhost".
So I add a check for this so that "localhost" is used as the cookie domain in this case.
2019-06-11 10:27:22 +08:00
Billchenchina
4ed05e6388 feat(uoj/1/app): make the Internet secure with friendly to 443 SSL 😎 (#22)
Change some static resources starting with https.
Replace long UOJConfig to HTML::URL.
New detection of protocol settings.
2019-05-01 00:30:55 +08:00
TRCYX
a8cec5a42f fix(blog): fix incorrect blog links from writing page (#38)
When a blogs was saved, only links of form "/blog/id/write" was
returned, ignoring username. Under a subdomain
("user.blog.site/blog/id/write") this is fine, but it does not work if
a subdomain is not used ("site/blog/id/write"). `HTML::blog_url` should
be called to return the links.

Also, DB::insert_id is called before actually inserting the blogs to get
the new blog's id. This sometimes return a 0, especially when the user
has just deleted a blog. DB::insert_id should be called after the
insert instead.
2019-04-26 00:07:47 +08:00
Masco Skray
e0914a8f31 chore(install/bundle): let Dockerfile get current branch when building
Previous the branch in Dockerfile is specified manually in each branch.
But when someone want to change the branch or test they must modify it.
To make the process more intelligent, we will auto get the branch name.
And, to make the image smaller, we added --single-branch argument onto.
2019-04-20 10:51:03 +08:00
Masco Skray
2565c18256 style(uoj/1/app): modify some page footer views
Add translations to some footer texts.
Open external links to the new blank view.
2019-04-18 11:10:53 +08:00
Masco Skray
2dc8e74fc1 feat(uoj/1/app): move data to the root when subfolder exists in the uploaded data zip
There is subfolder in the uploaded data archive file, we can now process it.
We will move files in the subfolder out to the data rootdir of current problem.
If you have some data archives with subfolder, don't need to repack them manually.
2019-04-16 22:48:13 +08:00