Commit Graph

21 Commits

Author SHA1 Message Date
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
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
Masco Skray
2e3817cabe fix(uoj/1/app/controllers): fix problem data upload zip type detection error
In the previous version when upload a zip online, even
if it is a real zip file the system refuses to accept.
Just simply disabled this function but it is not suitable.
We found that there is not just one MIME type for zip file.
So we add another common zip MIME types to temporarily solve it.
2019-04-16 21:12:52 +08:00
EarringYYR
a604bf9476 fix(blog-preview.php): click readmore will lead to 404 page
On Blog Preview page when someone set readmore flag will make rest of the content invisible.
Instead there will be a button for users to click and get the full article.
Because of the wrongly put link, it will make the last slash missing.
Put the blog id back in the right place to get a right link.
2019-02-24 02:50:20 +08:00
Masco Skray
fb3b0dad3c chore(uoj/1/js): update Readmore.js version
Update Readmore.js version to 2.2.1.
2018-12-15 13:16:26 +08:00
Masco Skray
f2056f17d1 fix(uoj/1): change server time's timezone that always set to UTC
Since PHP 5.1.0 (when the date/time functions were rewritten), we need to specify the default timezone.
Otherwise the timezone will always set to UTC that may cause problem or cause confusion.
We set the default timezone to Asia/Shanghai. If you are not at the area of this timezone, you can change it manually.
2018-10-11 23:40:05 +08:00
Masco Skray
c1294121d3 fix(uoj/1/app/libs): fix no preview of text files in problem_data_manage
When managing data, there will be a preview of test data or validator binary file.
But in PHP7 the prefiew of test data text file or problem.conf text file is not shown.
After my test it is caused by file_get_contents() when passing offset with -1.
It is strange that the manual on php.net in Chinese the default of $offset is -1,
but in English the default of $offset is 0. Use -1 will get nothing, 0 instead is fine.
The commit also change uojFilePreview() that can also be used as viewing binary file.
For backwards compatibility, we just set text as the default file type and no need to specify.
2018-10-11 23:40:05 +08:00
Masco Skray
58e70164ba fix(uoj/1/app/controllers): fix Judgement Failed submissions table not shown for superuser
When printing the table of Judgement Failed items at super-manage, there is nothing shown.
It caused by using echoSubmissionsList(), arguments that 3 passed but exactly 4 expected.
So add the missing argument, and let the result hidden because we select an exact result.
Also, because of the typo of "Judgement", there will be nothing shown if
only fixed too few arguments. This commit changes it too.
2018-10-11 23:35:32 +08:00
Masco Skray
923e1e61f8 fix(uoj/1/app/models): session issue caused by wrong cookie domain
After we changed the detection of the real httpHost value, the token check will fail when register.
A long time ago we just simply added "Session_Start();" at the beginning of uoj/1/app/index.php.
It temporally solved the problem but caused another series of issues that we can't see outside.
There is also a session_start() when executing Session::init() at importing app/libs/uoj-lib.php.
So, when we add one more "Session_Start();" it will execute this one more time, just cause warning:
> session_name(): Cannot change session name when session is active
> PHP Warning:  ini_set(): A session is active. You cannot change the session module's ini settings at this time
And, the session name and session path, session domain will not be set so may cause other problems.
The reason is that using UOJContext::httpHost() as web hostname when default, it will add the port at the end.
When using IP the validateIP() will return false, or using domain with port the cookie domain will be set wrongly.
As a result the register process throws out the "Expired" error and refuses to register, and other uses token will fail too.
We made it cut out the port when setting cookie domain, and also changed the style of UOJContext::httpHost() to make it easier to read.
With this problem known and solved the "Session_Start();" in index.php will also say bye-bye, and there will be no multiple session_start()s.

NOTICE: If you have set all your information to yours in .config.php, and not using address with port other than 80, you may not face this problem.
But the warning of php will consistently shown in the error log file. So kick the annoying warning information out if you are angry with this ;-)
2018-10-11 18:46:58 +08:00
Billchenchina
de24c3c08b
fix(uoj/1/app/libs): fix compile error when hack enabled
Previous g++-4.8 version will cause compile error when hack enabled.
2018-10-03 00:40:49 +08:00
Masco Skray
1d72c5e914 fix(uoj/1/app/controllers): fix login failure loop when logout from user profile modify page
When logout by clicking logout button on the top of /user/modify-profile link, you will be redirected to the login page.
But if you login immediately then you will get the login page again and loop.
It is caused by an address checking error. Now try to fix.
2018-09-23 23:14:39 +08:00
Masco Skray
64683ad93f feat(install/bundle): install script adapt to Ubuntu 18.04
Update base system to Ubuntu 18.04.
.htaccess file's session path changed correctly.
Add gnupg install choice, due to base system has no gpg support.
Set DEBIAN_FRONTEND to noninteractive in order to prevent tzdata stuck.
Change Dockerfile's verion and buanch checkout method, in order to save space.
Fix mysql conf when not restart service and the database can't import judger info.
Change install.sh, support PHP7.2, update libv8 repo to artful, with missing php-mbstring.
The old JDK distfile mirrors are deprecated, changed to official.sed modded to get the latest jdk8.

BREAKING CHANGE: Ubuntu 14/16 users shouln't execute this script, due to config files and packages not the same.
2018-09-20 22:05:15 +08:00
Masco Skray
ce61130caf style(uoj/1/app/models): a little modify of db connection
Prevent too many information printed out, leak.
Modify it to make it looks simple and can output error correctly.
2018-09-20 19:49:26 +08:00
vfleaking
4d2b0735dc update: fetch commits from upstream
Update from vfleaking/uoj upstream, commit aa8a85c - 9f1302c.
Because of this repo's modify, also with the adaption of community version.
2018-09-20 19:34:38 +08:00
TRCYX
e9df8f54ab fix(uoj-form-lib.php): UniversalOJ/UOJ-System#13
From vfleaking/uoj@43280f92d6.
Fix wrongly written `isset`s.
2018-09-20 17:39:42 +08:00
ceabrobot
0ec962b4af feat(uoj/1/app): modify the DB operation to support PHP7
In order to support PHP7, change the way to operate database. PHP7
removed the mysql extension, so the old way to operate database is
not usable. This commit use a new way to operate database.

BREAKING CHANGE: the way to operate database has changed.
2018-09-20 17:38:21 +08:00
MascoSkray
babd30364e Initial commit for PHP7
This is the commit before changing environment to PHP7.
2018-09-20 17:38:09 +08:00
vfleaking
82ad3efce2 Initial commit 2018-09-20 17:21:40 +08:00