mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-19 08:51:10 +00:00
resolves #8549 This PR add a config to enforce 2FA for the whole Forgejo instance. It can be configured to `none`, `admin` or `all`. A user who is required to enable 2FA is like a disabled user. He can only see the `/user/settings/security`-Page to enable 2FA, this should be similar to a user which needs to change his password. Also api and git-commands are not allowed. ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests - I added test coverage for Go changes... - [x] in their respective `*_test.go` for unit tests. - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server. - I added test coverage for JavaScript changes... - [ ] in `web_src/js/*.test.js` if it can be unit tested. - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)). ### Documentation - [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [ ] I did not document these changes and I do not expect someone else to do it. I will do it, if the general idea of this PR is a good feature. ### Release notes - [ ] I do not want this change to show in the release notes. - [x] I want the title to show in the release notes with a link to this pull request. - [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title. <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Security features - [PR](https://codeberg.org/forgejo/forgejo/pulls/8753): <!--number 8753 --><!--line 0 --><!--description R2xvYmFsIDJGQSBlbmZvcmNlbWVudA==-->Global 2FA enforcement<!--description--> <!--end release-notes-assistant--> Co-authored-by: 0ko <0ko@noreply.codeberg.org> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8753 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Reviewed-by: Ellen Εμιλία Άννα Zscheile <fogti@noreply.codeberg.org> Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: zokki <zokki.softwareschmiede@gmail.com> Co-committed-by: zokki <zokki.softwareschmiede@gmail.com>
138 lines
9.3 KiB
JSON
138 lines
9.3 KiB
JSON
{
|
|
"home.welcome.no_activity": "No activity",
|
|
"home.welcome.activity_hint": "There is nothing in your feed yet. Your actions and activity from repositories that you watch will show up here.",
|
|
"home.explore_repos": "Explore repositories",
|
|
"home.explore_users": "Explore users",
|
|
"home.explore_orgs": "Explore organizations",
|
|
"stars.list.none": "No one starred this repo.",
|
|
"watch.list.none": "No one is watching this repo.",
|
|
"followers.incoming.list.self.none": "No one is following your profile.",
|
|
"followers.incoming.list.none": "No one is following this user.",
|
|
"followers.outgoing.list.self.none": "You are not following anyone.",
|
|
"followers.outgoing.list.none": "%s isn't following anyone.",
|
|
"relativetime.now": "now",
|
|
"relativetime.future": "in future",
|
|
"relativetime.mins": {
|
|
"one": "%d minute ago",
|
|
"other": "%d minutes ago"
|
|
},
|
|
"relativetime.hours": {
|
|
"one": "%d hour ago",
|
|
"other": "%d hours ago"
|
|
},
|
|
"relativetime.days": {
|
|
"one": "%d day ago",
|
|
"other": "%d days ago"
|
|
},
|
|
"relativetime.weeks": {
|
|
"one": "%d week ago",
|
|
"other": "%d weeks ago"
|
|
},
|
|
"relativetime.months": {
|
|
"one": "%d month ago",
|
|
"other": "%d months ago"
|
|
},
|
|
"relativetime.years": {
|
|
"one": "%d year ago",
|
|
"other": "%d years ago"
|
|
},
|
|
"relativetime.1day": "yesterday",
|
|
"relativetime.2days": "two days ago",
|
|
"relativetime.1week": "last week",
|
|
"relativetime.2weeks": "two weeks ago",
|
|
"relativetime.1month": "last month",
|
|
"relativetime.2months": "two months ago",
|
|
"relativetime.1year": "last year",
|
|
"relativetime.2years": "two years ago",
|
|
"repo.pulls.already_merged": "Merge failed: This pull request has already been merged.",
|
|
"repo.pulls.merged_title_desc": {
|
|
"one": "merged %[1]d commit from <code>%[2]s</code> into <code>%[3]s</code> %[4]s",
|
|
"other": "merged %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code> %[4]s"
|
|
},
|
|
"repo.pulls.title_desc": {
|
|
"one": "wants to merge %[1]d commit from <code>%[2]s</code> into <code id=\"%[4]s\">%[3]s</code>",
|
|
"other": "wants to merge %[1]d commits from <code>%[2]s</code> into <code id=\"%[4]s\">%[3]s</code>"
|
|
},
|
|
"repo.form.cannot_create": "All spaces in which you can create repositories have reached the limit of repositories.",
|
|
"repo.issue_indexer.title": "Issue Indexer",
|
|
"search.milestone_kind": "Search milestones…",
|
|
"repo.settings.push_mirror.branch_filter.label": "Branch filter (optional)",
|
|
"repo.settings.push_mirror.branch_filter.description": "Branches to be mirrored. Leave blank to mirror all branches. See <a href=\"%[1]s\">%[2]s documentation</a> for syntax. Examples: <code>main, release/*</code>",
|
|
"incorrect_root_url": "This Forgejo instance is configured to be served on \"%s\". You are currently viewing Forgejo through a different URL, which may cause parts of the application to break. The canonical URL is controlled by Forgejo admins via the ROOT_URL setting in the app.ini.",
|
|
"themes.names.forgejo-auto": "Forgejo (follow system theme)",
|
|
"themes.names.forgejo-light": "Forgejo light",
|
|
"themes.names.forgejo-dark": "Forgejo dark",
|
|
"error.not_found.title": "Page not found",
|
|
"warning.repository.out_of_sync": "The database representation of this repository is out of synchronization. If this warning is still shown after pushing a commit to this repository contact the administrator.",
|
|
"alert.asset_load_failed": "Failed to load asset files from {path}. Please make sure the asset files can be accessed.",
|
|
"alert.range_error": " must be a number between %[1]s and %[2]s.",
|
|
"install.invalid_lfs_path": "Unable to create the LFS root at the specified path: %[1]s",
|
|
"profile.actions.tooltip": "More actions",
|
|
"profile.edit.link": "Edit profile",
|
|
"feed.atom.link": "Atom feed",
|
|
"keys.ssh.link": "SSH keys",
|
|
"keys.gpg.link": "GPG keys",
|
|
"admin.config.moderation_config": "Moderation configuration",
|
|
"admin.moderation.moderation_reports": "Moderation reports",
|
|
"admin.moderation.reports": "Reports",
|
|
"admin.moderation.no_open_reports": "There are currently no open reports.",
|
|
"admin.moderation.deleted_content_ref": "Reported content with type %[1]v and id %[2]d no longer exists",
|
|
"moderation.report_abuse": "Report abuse",
|
|
"moderation.report_content": "Report content",
|
|
"moderation.report_abuse_form.header": "Report abuse to administrator",
|
|
"moderation.report_abuse_form.details": "This form should be used to report users who create spam profiles, repositories, issues, comments or behave inappropriately.",
|
|
"moderation.report_abuse_form.invalid": "Invalid arguments",
|
|
"moderation.report_abuse_form.already_reported": "You've already reported this content",
|
|
"moderation.abuse_category": "Category",
|
|
"moderation.abuse_category.placeholder": "Select a category",
|
|
"moderation.abuse_category.spam": "Spam",
|
|
"moderation.abuse_category.malware": "Malware",
|
|
"moderation.abuse_category.illegal_content": "Illegal content",
|
|
"moderation.abuse_category.other_violations": "Other violations of platform rules",
|
|
"moderation.report_remarks": "Remarks",
|
|
"moderation.report_remarks.placeholder": "Please provide some details regarding the abuse you are reporting.",
|
|
"moderation.submit_report": "Submit report",
|
|
"moderation.reporting_failed": "Unable to submit the new abuse report: %v",
|
|
"moderation.reported_thank_you": "Thank you for your report. The administration has been made aware of it.",
|
|
"mail.actions.successful_run_after_failure_subject": "Workflow %[1]s recovered in repository %[2]s",
|
|
"mail.actions.not_successful_run_subject": "Workflow %[1]s failed in repository %[2]s",
|
|
"mail.actions.successful_run_after_failure": "Workflow %[1]s recovered in repository %[2]s",
|
|
"mail.actions.not_successful_run": "Workflow %[1]s failed in repository %[2]s",
|
|
"mail.actions.run_info_cur_status": "This Run's Status: %[1]s (just updated from %[2]s)",
|
|
"mail.actions.run_info_previous_status": "Previous Run's Status: %[1]s",
|
|
"mail.actions.run_info_sha": "Commit: %[1]s",
|
|
"mail.actions.run_info_trigger": "Triggered because: %[1]s by: %[2]s",
|
|
"repo.diff.commit.next-short": "Next",
|
|
"repo.diff.commit.previous-short": "Prev",
|
|
"discussion.locked": "This discussion has been locked. Commenting is limited to contributors.",
|
|
"discussion.sidebar.reference": "Reference",
|
|
"editor.textarea.tab_hint": "Line already indented. Press <kbd>Tab</kbd> again or <kbd>Escape</kbd> to leave the editor.",
|
|
"editor.textarea.shift_tab_hint": "No indentation on this line. Press <kbd>Shift</kbd> + <kbd>Tab</kbd> again or <kbd>Escape</kbd> to leave the editor.",
|
|
"admin.auths.allow_username_change": "Allow username change",
|
|
"admin.auths.allow_username_change.description": "Allow users to change their username in the profile settings",
|
|
"admin.dashboard.cleanup_offline_runners": "Cleanup offline runners",
|
|
"admin.dashboard.remove_resolved_reports": "Remove resolved reports",
|
|
"admin.config.security": "Security configuration",
|
|
"admin.config.global_2fa_requirement.title": "Global two-factor requirement",
|
|
"admin.config.global_2fa_requirement.none": "No",
|
|
"admin.config.global_2fa_requirement.all": "All users",
|
|
"admin.config.global_2fa_requirement.admin": "Administrators",
|
|
"settings.visibility.description": "Profile visibility affects others' ability to access your non-private repositories. <a href=\"%s\" target=\"_blank\">Learn more</a>.",
|
|
"settings.twofa_unroll_unavailable": "Two-factor authentication is required for your account and cannot be disabled.",
|
|
"settings.twofa_reenroll": "Re-enroll two-factor authentication",
|
|
"settings.twofa_reenroll.description": "Re-enroll your two-factor authentication",
|
|
"settings.must_enable_2fa": "This Forgejo instance requires users to enable two-factor authentication before they can access their accounts.",
|
|
"error.must_enable_2fa": "This Forgejo instance requires users to enable two-factor authentication before they can access their accounts. Enable it at: %s",
|
|
"avatar.constraints_hint": "Custom avatar may not exceed %[1]s in size or be larger than %[2]dx%[3]d pixels",
|
|
"og.repo.summary_card.alt_description": "Summary card of repository %[1]s, described as: %[2]s",
|
|
"repo.commit.load_tags_failed": "Load tags failed because of internal error",
|
|
"compare.branches.title": "Compare branches",
|
|
"migrate.pagure.description": "Migrate data from pagure.io or other Pagure instances.",
|
|
"migrate.pagure.incorrect_url": "Incorrect source repository URL has been provided",
|
|
"migrate.pagure.project_url": "Pagure project URL",
|
|
"migrate.pagure.project_example": "The Pagure project url, e.g. https://pagure.io/pagure",
|
|
"migrate.pagure.token_label": "Token",
|
|
"migrate.pagure.token_body_a": "Provide a Pagure API token with access to the private issues to create a repository with just the private issues in it",
|
|
"migrate.pagure.token_body_b": "Be sure to set the private repo flag above if you want this repo to be private",
|
|
"meta.last_line": "Thank you for translating Forgejo! This line isn't seen by the users but it serves other purposes in the translation management. You can place a fun fact in the translation instead of translating it."
|
|
}
|