mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-01 05:36:19 +01:00
Allow enable LDAP source and disable user sync via CLI (#20206)
The current `admin auth` CLI for managing authentication source of type LDAP via BindDN and Simple LDAP does not allow enabling the respective source, once disabled via `--not-active`. The same applies to `--synchronize-users` specifially for LDAP via BindDN. These changes add two new flags to LDAP related CLI commands: - `--active` for both LDAP authentication source types - `--disable-synchronize-users` for LDAP via BindDN Signed-off-by: justusbunsi <61625851+justusbunsi@users.noreply.github.com>
This commit is contained in:
parent
f9b172db65
commit
33f6f91008
2 changed files with 71 additions and 0 deletions
|
@ -34,6 +34,10 @@ var (
|
||||||
Name: "not-active",
|
Name: "not-active",
|
||||||
Usage: "Deactivate the authentication source.",
|
Usage: "Deactivate the authentication source.",
|
||||||
},
|
},
|
||||||
|
cli.BoolFlag{
|
||||||
|
Name: "active",
|
||||||
|
Usage: "Activate the authentication source.",
|
||||||
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "security-protocol",
|
Name: "security-protocol",
|
||||||
Usage: "Security protocol name.",
|
Usage: "Security protocol name.",
|
||||||
|
@ -117,6 +121,10 @@ var (
|
||||||
Name: "synchronize-users",
|
Name: "synchronize-users",
|
||||||
Usage: "Enable user synchronization.",
|
Usage: "Enable user synchronization.",
|
||||||
},
|
},
|
||||||
|
cli.BoolFlag{
|
||||||
|
Name: "disable-synchronize-users",
|
||||||
|
Usage: "Disable user synchronization.",
|
||||||
|
},
|
||||||
cli.UintFlag{
|
cli.UintFlag{
|
||||||
Name: "page-size",
|
Name: "page-size",
|
||||||
Usage: "Search page size.",
|
Usage: "Search page size.",
|
||||||
|
@ -183,9 +191,15 @@ func parseAuthSource(c *cli.Context, authSource *auth.Source) {
|
||||||
if c.IsSet("not-active") {
|
if c.IsSet("not-active") {
|
||||||
authSource.IsActive = !c.Bool("not-active")
|
authSource.IsActive = !c.Bool("not-active")
|
||||||
}
|
}
|
||||||
|
if c.IsSet("active") {
|
||||||
|
authSource.IsActive = c.Bool("active")
|
||||||
|
}
|
||||||
if c.IsSet("synchronize-users") {
|
if c.IsSet("synchronize-users") {
|
||||||
authSource.IsSyncEnabled = c.Bool("synchronize-users")
|
authSource.IsSyncEnabled = c.Bool("synchronize-users")
|
||||||
}
|
}
|
||||||
|
if c.IsSet("disable-synchronize-users") {
|
||||||
|
authSource.IsSyncEnabled = !c.Bool("disable-synchronize-users")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// parseLdapConfig assigns values on config according to command line flags.
|
// parseLdapConfig assigns values on config according to command line flags.
|
||||||
|
|
|
@ -858,6 +858,36 @@ func TestUpdateLdapBindDn(t *testing.T) {
|
||||||
},
|
},
|
||||||
errMsg: "Invalid authentication type. expected: LDAP (via BindDN), actual: OAuth2",
|
errMsg: "Invalid authentication type. expected: LDAP (via BindDN), actual: OAuth2",
|
||||||
},
|
},
|
||||||
|
// case 24
|
||||||
|
{
|
||||||
|
args: []string{
|
||||||
|
"ldap-test",
|
||||||
|
"--id", "24",
|
||||||
|
"--name", "ldap (via Bind DN) flip 'active' and 'user sync' attributes",
|
||||||
|
"--active",
|
||||||
|
"--disable-synchronize-users",
|
||||||
|
},
|
||||||
|
id: 24,
|
||||||
|
existingAuthSource: &auth.Source{
|
||||||
|
Type: auth.LDAP,
|
||||||
|
IsActive: false,
|
||||||
|
IsSyncEnabled: true,
|
||||||
|
Cfg: &ldap.Source{
|
||||||
|
Name: "ldap (via Bind DN) flip 'active' and 'user sync' attributes",
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
authSource: &auth.Source{
|
||||||
|
Type: auth.LDAP,
|
||||||
|
Name: "ldap (via Bind DN) flip 'active' and 'user sync' attributes",
|
||||||
|
IsActive: true,
|
||||||
|
IsSyncEnabled: false,
|
||||||
|
Cfg: &ldap.Source{
|
||||||
|
Name: "ldap (via Bind DN) flip 'active' and 'user sync' attributes",
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for n, c := range cases {
|
for n, c := range cases {
|
||||||
|
@ -1221,6 +1251,33 @@ func TestUpdateLdapSimpleAuth(t *testing.T) {
|
||||||
},
|
},
|
||||||
errMsg: "Invalid authentication type. expected: LDAP (simple auth), actual: PAM",
|
errMsg: "Invalid authentication type. expected: LDAP (simple auth), actual: PAM",
|
||||||
},
|
},
|
||||||
|
// case 20
|
||||||
|
{
|
||||||
|
args: []string{
|
||||||
|
"ldap-test",
|
||||||
|
"--id", "20",
|
||||||
|
"--name", "ldap (simple auth) flip 'active' attribute",
|
||||||
|
"--active",
|
||||||
|
},
|
||||||
|
id: 20,
|
||||||
|
existingAuthSource: &auth.Source{
|
||||||
|
Type: auth.DLDAP,
|
||||||
|
IsActive: false,
|
||||||
|
Cfg: &ldap.Source{
|
||||||
|
Name: "ldap (simple auth) flip 'active' attribute",
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
authSource: &auth.Source{
|
||||||
|
Type: auth.DLDAP,
|
||||||
|
Name: "ldap (simple auth) flip 'active' attribute",
|
||||||
|
IsActive: true,
|
||||||
|
Cfg: &ldap.Source{
|
||||||
|
Name: "ldap (simple auth) flip 'active' attribute",
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for n, c := range cases {
|
for n, c := range cases {
|
||||||
|
|
Loading…
Reference in a new issue