mirror of
https://github.com/LemmyNet/lemmy-ui.git
synced 2024-11-26 06:11:15 +00:00
Adding only admins can create communities. Fixes #268
This commit is contained in:
parent
017121d0fb
commit
a93c7d93ee
5 changed files with 52 additions and 15 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit ef6c991e345a880d98b165508f28793fef3f922a
|
Subproject commit 0cf2ad832d07d6c0232b3c9c1958d5572303410e
|
|
@ -68,7 +68,7 @@
|
||||||
"eslint-plugin-prettier": "^3.3.1",
|
"eslint-plugin-prettier": "^3.3.1",
|
||||||
"husky": "^6.0.0",
|
"husky": "^6.0.0",
|
||||||
"iso-639-1": "^2.1.9",
|
"iso-639-1": "^2.1.9",
|
||||||
"lemmy-js-client": "0.11.0-rc.11",
|
"lemmy-js-client": "0.11.0-rc.12",
|
||||||
"lint-staged": "^10.5.4",
|
"lint-staged": "^10.5.4",
|
||||||
"mini-css-extract-plugin": "^1.4.1",
|
"mini-css-extract-plugin": "^1.4.1",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
|
|
|
@ -247,6 +247,7 @@ export class Navbar extends Component<NavbarProps, NavbarState> {
|
||||||
{i18n.t("create_post")}
|
{i18n.t("create_post")}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
{this.canCreateCommunity && (
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<Link
|
<Link
|
||||||
className="nav-link"
|
className="nav-link"
|
||||||
|
@ -256,6 +257,7 @@ export class Navbar extends Component<NavbarProps, NavbarState> {
|
||||||
{i18n.t("create_community")}
|
{i18n.t("create_community")}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
)}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a
|
<a
|
||||||
className="nav-link"
|
className="nav-link"
|
||||||
|
@ -524,6 +526,12 @@ export class Navbar extends Component<NavbarProps, NavbarState> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get canCreateCommunity(): boolean {
|
||||||
|
let adminOnly = this.props.site_res.site_view.site
|
||||||
|
.community_creation_admin_only;
|
||||||
|
return !adminOnly || this.canAdmin;
|
||||||
|
}
|
||||||
|
|
||||||
requestNotificationPermission() {
|
requestNotificationPermission() {
|
||||||
if (UserService.Instance.localUserView) {
|
if (UserService.Instance.localUserView) {
|
||||||
document.addEventListener("DOMContentLoaded", function () {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
|
|
|
@ -58,6 +58,8 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
||||||
enable_downvotes: this.props.site.enable_downvotes,
|
enable_downvotes: this.props.site.enable_downvotes,
|
||||||
open_registration: this.props.site.open_registration,
|
open_registration: this.props.site.open_registration,
|
||||||
enable_nsfw: this.props.site.enable_nsfw,
|
enable_nsfw: this.props.site.enable_nsfw,
|
||||||
|
community_creation_admin_only: this.props.site
|
||||||
|
.community_creation_admin_only,
|
||||||
icon: this.props.site.icon,
|
icon: this.props.site.icon,
|
||||||
banner: this.props.site.banner,
|
banner: this.props.site.banner,
|
||||||
auth: authField(),
|
auth: authField(),
|
||||||
|
@ -231,6 +233,28 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-check">
|
||||||
|
<input
|
||||||
|
class="form-check-input"
|
||||||
|
id="create-site-community-creation-admin-only"
|
||||||
|
type="checkbox"
|
||||||
|
checked={this.state.siteForm.community_creation_admin_only}
|
||||||
|
onChange={linkEvent(
|
||||||
|
this,
|
||||||
|
this.handleSiteCommunityCreationAdminOnly
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
<label
|
||||||
|
class="form-check-label"
|
||||||
|
htmlFor="create-site-community-creation-admin-only"
|
||||||
|
>
|
||||||
|
{i18n.t("community_creation_admin_only")}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<button
|
<button
|
||||||
|
@ -302,6 +326,11 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
||||||
i.setState(i.state);
|
i.setState(i.state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleSiteCommunityCreationAdminOnly(i: SiteForm, event: any) {
|
||||||
|
i.state.siteForm.community_creation_admin_only = event.target.checked;
|
||||||
|
i.setState(i.state);
|
||||||
|
}
|
||||||
|
|
||||||
handleSiteEnableDownvotesChange(i: SiteForm, event: any) {
|
handleSiteEnableDownvotesChange(i: SiteForm, event: any) {
|
||||||
i.state.siteForm.enable_downvotes = event.target.checked;
|
i.state.siteForm.enable_downvotes = event.target.checked;
|
||||||
i.setState(i.state);
|
i.setState(i.state);
|
||||||
|
|
|
@ -5125,10 +5125,10 @@ lcid@^1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
invert-kv "^1.0.0"
|
invert-kv "^1.0.0"
|
||||||
|
|
||||||
lemmy-js-client@0.11.0-rc.11:
|
lemmy-js-client@0.11.0-rc.12:
|
||||||
version "0.11.0-rc.11"
|
version "0.11.0-rc.12"
|
||||||
resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.11.0-rc.11.tgz#f99be613d08d0c196a16a37f74fdaa3b196f0459"
|
resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.11.0-rc.12.tgz#b6f80f69425ae9699857f98640a3d5a9697955b1"
|
||||||
integrity sha512-IuNzU4+324fhb77JCQ/a/te/gXhQWUvxvtfV3xxQWJ0vG7kWOuz5Rd7KsfSF1d6LbuN9kbO9ebjSRW800ytbsA==
|
integrity sha512-tAYL6g+OgJcNy4SP0tbN6x/qyScAV5XPVyIYGGZd2FDfVd3VFDvfoesqGBOSryLhW9jDE6YSC09jhNLMyNtMCA==
|
||||||
|
|
||||||
levn@^0.4.1:
|
levn@^0.4.1:
|
||||||
version "0.4.1"
|
version "0.4.1"
|
||||||
|
|
Loading…
Reference in a new issue