diff --git a/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix b/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix index 27c749dea2e..2766b645349 100644 --- a/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix +++ b/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix @@ -8,6 +8,7 @@ in discourse-checklist = callPackage ./discourse-checklist {}; discourse-data-explorer = callPackage ./discourse-data-explorer {}; discourse-github = callPackage ./discourse-github {}; + discourse-ldap-auth = callPackage ./discourse-ldap-auth {}; discourse-math = callPackage ./discourse-math {}; discourse-migratepassword = callPackage ./discourse-migratepassword {}; discourse-solved = callPackage ./discourse-solved {}; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile new file mode 100644 index 00000000000..897a808c1d7 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'pyu-ruby-sasl', '0.0.3.3', require: false +gem 'rubyntlm', '0.3.4', require: false +gem 'net-ldap', '0.14.0' +gem 'omniauth-ldap', '1.0.5' diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock new file mode 100644 index 00000000000..2843cb0d8f0 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock @@ -0,0 +1,28 @@ +GEM + remote: https://rubygems.org/ + specs: + hashie (4.1.0) + net-ldap (0.14.0) + omniauth (1.9.1) + hashie (>= 3.4.6) + rack (>= 1.6.2, < 3) + omniauth-ldap (1.0.5) + net-ldap (~> 0.12) + omniauth (~> 1.0) + pyu-ruby-sasl (~> 0.0.3.2) + rubyntlm (~> 0.3.4) + pyu-ruby-sasl (0.0.3.3) + rack (2.2.3) + rubyntlm (0.3.4) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + net-ldap (= 0.14.0) + omniauth-ldap (= 1.0.5) + pyu-ruby-sasl (= 0.0.3.3) + rubyntlm (= 0.3.4) + +BUNDLED WITH + 2.2.20 diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix new file mode 100644 index 00000000000..92a3c2544cd --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix @@ -0,0 +1,18 @@ +{ lib, mkDiscoursePlugin, fetchFromGitHub }: + +mkDiscoursePlugin { + name = "discourse-ldap-auth"; + bundlerEnvArgs.gemdir = ./.; + src = fetchFromGitHub { + owner = "jonmbake"; + repo = "discourse-ldap-auth"; + rev = "eca02c560f2f2bf42feeb1923bc17e074f16b891"; + sha256 = "sha256-HLNoDvvxkBMvqP6WbRrJY0CYnK92W77nzSpuwgl0VPA="; + }; + meta = with lib; { + homepage = "https://github.com/jonmbake/discourse-ldap-auth"; + maintainers = with maintainers; [ ryantm ]; + license = licenses.mit; + description = "Discourse plugin to enable LDAP/Active Directory authentication."; + }; +} diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix new file mode 100644 index 00000000000..e684a506479 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix @@ -0,0 +1,74 @@ +{ + hashie = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q"; + type = "gem"; + }; + version = "4.1.0"; + }; + net-ldap = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18fyxfbh32ai72cwgz8s9w0fg0xq7j534y217flw54mmzsj8i6qp"; + type = "gem"; + }; + version = "0.14.0"; + }; + omniauth = { + dependencies = ["hashie" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "002vi9gwamkmhf0dsj2im1d47xw2n1jfhnzl18shxf3ampkqfmyz"; + type = "gem"; + }; + version = "1.9.1"; + }; + omniauth-ldap = { + dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ld3mx46xa1qhc0cpnck1n06xcxs0ag4n41zgabxri27a772f9wz"; + type = "gem"; + }; + version = "1.0.5"; + }; + pyu-ruby-sasl = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn"; + type = "gem"; + }; + version = "0.0.3.3"; + }; + rack = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16"; + type = "gem"; + }; + version = "2.2.3"; + }; + rubyntlm = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18d1lxhx62swggf4cqg76h7hp04f5801c8h07w08cm9xng2niqby"; + type = "gem"; + }; + version = "0.3.4"; + }; +} diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py index 127088dafbf..a207b0ebf31 100755 --- a/pkgs/servers/web-apps/discourse/update.py +++ b/pkgs/servers/web-apps/discourse/update.py @@ -206,6 +206,7 @@ def update_plugins(): {'name': 'discourse-checklist'}, {'name': 'discourse-data-explorer'}, {'name': 'discourse-github'}, + {'name': 'discourse-ldap-auth', 'owner': 'jonmbake'}, {'name': 'discourse-math'}, {'name': 'discourse-migratepassword', 'owner': 'discoursehosting'}, {'name': 'discourse-solved'},