Commit Graph

448 Commits

Author SHA1 Message Date
7f25e3b555 Initial go at upgrading from Bootstap v3 to v4 and to AdminLTE v3.2.0 2023-02-02 21:19:15 +00:00
e411bc9f19 Enable CAPTCHA 2023-01-30 22:46:59 +00:00
91c1907486 Update login.html
Use SITE_NAME for login box title on login page (with default value).
This can be useful when using multiple powerdns admin in an organization.
2023-01-26 00:02:08 +01:00
b607c1b7ff Update base.html
Use SITE_NAME for upper left title on base page.
This can be useful when using multiple powerdns admin in an organization.
2023-01-25 23:59:35 +01:00
d50d57bc70 Merge pull request #1357 from pneb/patch-6
fix: Potential fix for a regex bug
2023-01-25 16:19:27 -05:00
51249aecd3 Merge pull request #1212 from corubba/feature/privacy-first
Privacy first
2023-01-24 05:34:30 -05:00
246ad7f7d2 Fixing Wrapping in History Details Modal in Dashboard
resolves #1358
2023-01-13 10:05:20 +01:00
18bc336d7a Potential fix 2023-01-11 18:21:40 +08:00
bb29c27430 Merge pull request #1354 from Metrax/support-pdns4.7
Support pdns4.7
2023-01-10 08:01:17 -05:00
c02cb3b7fe Model change: Changing domain model type variable to 8 chars
PowerDNS 4.7 is supporting 2 new zone types: "producer" & "consumer"
Due to the domain type variable is limited to 6 chars, PDA Zone update will fail if producer or cusomer zones exist.
To solve this problem, this commit increases the lenght of the domain model type variable to 8 chars.
2023-01-10 13:51:04 +01:00
c7eaec27d8 Update utils.py 2022-12-23 08:23:14 +08:00
1d885278d4 Cosmetic 2022-12-22 22:55:05 +01:00
7d153932b3 Fix back_populate relationships 2022-12-22 22:50:01 +01:00
e920bf5009 Fix broken code
PR #1089 is the culprit, as was already predicted in the review.
2022-12-19 09:37:01 +01:00
89f3d4d01a Revert "enhancement(routes/index.py): OIDC supports HTTP Scheme now" 2022-12-14 20:37:30 -05:00
f6c49c379d Update index.py 2022-12-15 06:13:27 +08:00
30ed68471e Merge pull request #1322 from Metrax/master
Fixing Validation problem on LDAP form
2022-12-13 20:59:22 -05:00
8373363c4d Merge pull request #1323 from jbe-dw/fixLDAPDeprecatedOpt
Draft: Fix pyhton-ldap upgrade
2022-12-13 20:56:03 -05:00
ff671ebabe Fix 1329 2022-12-14 00:34:12 +00:00
d0290ac469 Update login.html
Use SITE_NAME for login box title on login page.
This can be useful when using multiple powerdns admin in an organization.
2022-12-13 09:10:21 +01:00
97a79645b0 fix of issue #1261
split record by "."
idna.encode leads into full stop if the string starts with "_" or "-"
2022-12-12 17:31:32 +01:00
52169f698c undo of commit a7f55de
did not fix issue #1261
leaded into issue #1321
2022-12-12 17:30:42 +01:00
8d5b92402d fix: Remove deprecated option OPT_X_TLS 2022-12-12 15:57:11 +01:00
23e0fdbedf Fixing Validation Problem at LDAP Form 2022-12-12 12:32:32 +01:00
dfdb0dca17 Update domain.py 2022-12-10 10:37:06 +08:00
3c0b0a1b2d Merge pull request #1246 from unilogicbv/admin_edit_key_user_role_default
admin_edit_key: default to User role for new api keys
2022-12-08 22:13:23 -05:00
2cd8f60f8d Merge pull request #1247 from unilogicbv/models_user_plain_text_password_guard
models/user.py: properly guard plain_text_password property
2022-12-08 22:10:21 -05:00
7873e5f3f8 Merge pull request #1249 from unilogicbv/models_user_totp_valid_window
models/user.py: add non-zero valid_window to totp.verify
2022-12-08 22:05:34 -05:00
e823f079b7 Merge pull request #1266 from WhatshallIbreaktoday/master
allow null/None JSON data (Used for pdns notifies via api and by LEGO-ACME v 4.9.0)
2022-12-08 21:57:18 -05:00
2656242b45 Update api_key.py
I added the parentheses to the `db.session.rollback` line to call the method, which will now properly roll back any changes made to the database if an error occurs.
2022-12-09 09:33:17 +08:00
3e68044420 Update utils.py
This should fix the error you were experiencing, as it will now only attempt to process the `data` argument if it is a tuple containing two elements. If the `data` argument is not in the expected format, the function will simply return an empty string instead of raising an exception.
2022-12-09 08:15:13 +08:00
d25a22272e allow null/None JSON data
This change permits to proxy pdns zone notify api requests (which are expected to be with empty body)
2022-10-12 08:10:35 +02:00
cb835978df Fix order of operations in api payload
PDNS checks that when a `CNAME` rrset is created that no other rrset of
the same name but a different rtype exists. When changing a record type
to `CNAME`, PDA will send two operations in one api call to PDNS: A
deletion of the old rrset, and the addition of the new rrset. For the
check in PDNS to pass, the deletion needs to happen before the addition.
Before PR #1201 that was the case, the first api call did deletions and
the second handled additions and changes. Currently the api payload
contains additions first and deletions last. PDNS applies these in the
order they are passed in the payload to the api, so to restore the
original/correct/working behaviour the order of operations in the api
payload has to be reversed.

fixes #1251
2022-09-23 00:19:22 +02:00
846c03f154 models/user.py: add non-zero valid_window to totp.verify
PyOTP's totp.verify defaults to the valid_window of zero, which means
it will reject valid codes, if submitted just past the 30 sec window.
It also means, users will run into authentication issues very quickly
if their phones time-sync isn't perfect.

Therefore valid_window should at the very least be 1 or more, settting
it higher trades security for robustness, especially with regard to
time desync issues.
2022-09-07 14:23:34 +02:00
41a3995865 routes/index.py: otp_force shouldn't apply to OAuth
as 2FA policies are typically enforced on the OAuth proviers end

Relates to #1051
2022-09-06 16:28:45 +02:00
4fd1b10018 models/user.py: properly guard plain_text_password property
Resolves the following issue, which occurs with force_otp enabled
and OAuth authentication sources:

File "/srv/powerdnsadmin/powerdnsadmin/models/user.py", line 481, in update_profile
  "utf-8") if self.plain_text_password else user.password
AttributeError: 'User' object has no attribute 'plain_text_password'
2022-09-06 15:31:43 +02:00
9bf74a6baf admin_edit_key: default to User role for new api keys
hopefully this will prevent accidental administator api keys from being created
2022-09-06 15:25:28 +02:00
204c996c81 Merge pull request #1221 from corubba/bugfix/changelog-hyphen
Fix rrset changelog for names with hyphen
2022-07-01 15:52:44 +03:00
3c68b611c6 Update powerdnsadmin/routes/admin.py
Looks good to me

Co-authored-by: Corubba <97832352+corubba@users.noreply.github.com>
2022-06-29 08:56:01 +02:00
cfab13824d Add history entries for association changes of domains 2022-06-28 11:19:00 +02:00
6a2ba1b1c3 Add list to manage with an account associated domains 2022-06-28 11:18:53 +02:00
41642fcea4 fix: Update JS minifier library 2022-06-24 23:03:01 +02:00
5036619a67 Allow new domains to be absolute
Allow the new domain name to be input absolute (with a dot at the end).
To keep the rest of the logic working as-is, remove it fairly early in
the function.

Would have loved to use `str.removesuffix()` but that's python v3.9+.
2022-06-23 22:31:00 +02:00
9890ddfa64 Fix rrset changelog for names with hyphen
When clicking the changelog button for a record with the name
`foo-bar.example.org`, the url you get redirected to is
`/domain/example.org/changelog/foo-bar.example.org.-A`. Because of the
non-greedy behaviour of the path converter, the last part gets split at
the *first* hyphen, so the example above gets wrongly dissected into
`record_name=foo` and `record_type=bar.example.org.-A`. This results
for obvious reasons in an empty changelog.

As described in rfc5395 [0], types have to be alphanumerical, so its
converter is changed from path to string.

The hyphen is one of the few characters recommended by rfc1035 [1],
so it is a bad choice as separator. The separator is instead changed to
a slash.
Granted, this does not entirely solve the issue but at least makes it a
lot less likely to happen. Plus, a lot more and other things break in
pda with slashes in names.

[0] https://datatracker.ietf.org/doc/html/rfc5395#section-3.1
[1] https://datatracker.ietf.org/doc/html/rfc1035#section-2.3.1
2022-06-19 12:16:40 +02:00
dac232147e enh: Cookies security (#1211)
author: corruba
2022-06-18 22:51:47 +02:00
3a8ad7c444 Remove OFFLINE_MODE config option 2022-06-18 19:11:16 +02:00
b809308d31 Add LDAP user images 2022-06-18 19:11:16 +02:00
607caa1a2d Rework user image handling
Moved all the logic out of the template into a separate endpoint. This
makes it easy to extend to also support images from different sources
like LDAP/SAML/OIDC. Session-based caching is hard to do, so to allow
time-based caching in the browser, the url needs to be unique for every
user by using a query parameter.

Replaced the default/fallback user image with a new one. It is based on
the old one, but does not need css to be visible. And removed said css.

Gravatar has now its own setting named `gravatar_enabled`, which is
disabled by default.
2022-06-18 19:11:13 +02:00
b795f1eadf Use the doc search directly 2022-06-18 19:07:23 +02:00
fee26b84ba Remove IE8 polyfills
These old browsers are EOL since 2016 [0], let them finally rest in
peace.

This effectively reverts/replaces commit b8dee5d17056788c2dc9940d14308648e32186d8.

[0] https://web.archive.org/web/20160115070611/https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support
2022-06-18 19:07:23 +02:00