Skip to content

Commit 75334d4

Browse files
committed
cleanup classicui controlpanel
1 parent d2a9880 commit 75334d4

File tree

2 files changed

+20
-137
lines changed

2 files changed

+20
-137
lines changed

news/73.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Make controlpanel compatible with collective.regenv. @mamico

src/pas/plugins/oidc/controlpanel/classic.py

Lines changed: 19 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -12,147 +12,29 @@
1212
@adapter(IPloneSiteRoot)
1313
@implementer(IOIDCSettings)
1414
class OIDCControlPanelAdapter:
15+
propertymap = None
16+
1517
def __init__(self, context):
1618
self.context = context
1719
self.portal = api.portal.get()
1820
self.encoding = "utf-8"
1921
self.settings = self.portal.acl_users[PLUGIN_ID]
22+
self.propertymap = {prop["id"]: prop for prop in self.settings.propertyMap()}
2023

21-
@property
22-
def issuer(self):
23-
return self.settings.getProperty("issuer")
24-
25-
@issuer.setter
26-
def issuer(self, value):
27-
self.settings.issuer = value
28-
29-
@property
30-
def client_id(self):
31-
return self.settings.getProperty("client_id")
32-
33-
@client_id.setter
34-
def client_id(self, value):
35-
self.settings.client_id = value
36-
37-
@property
38-
def client_secret(self):
39-
return self.settings.getProperty("client_secret")
40-
41-
@client_secret.setter
42-
def client_secret(self, value):
43-
self.settings.client_secret = value
44-
45-
@property
46-
def redirect_uris(self):
47-
return self.settings.getProperty("redirect_uris")
48-
49-
@redirect_uris.setter
50-
def redirect_uris(self, value):
51-
self.settings.redirect_uris = value
52-
53-
@property
54-
def use_session_data_manager(self):
55-
return self.settings.getProperty("use_session_data_manager")
56-
57-
@use_session_data_manager.setter
58-
def use_session_data_manager(self, value):
59-
self.settings.use_session_data_manager = value
60-
61-
@property
62-
def create_user(self):
63-
return self.settings.getProperty("create_user")
64-
65-
@create_user.setter
66-
def create_user(self, value):
67-
self.settings.create_user = value
68-
69-
@property
70-
def create_groups(self):
71-
return self.settings.getProperty("create_groups")
72-
73-
@create_groups.setter
74-
def create_groups(self, value):
75-
self.settings.create_groups = value
76-
77-
@property
78-
def user_property_as_groupid(self):
79-
return self.settings.getProperty("user_property_as_groupid")
80-
81-
@user_property_as_groupid.setter
82-
def user_property_as_groupid(self, value):
83-
self.settings.user_property_as_groupid = value
84-
85-
@property
86-
def allowed_groups(self):
87-
return self.settings.getPropertty("allowed_groups")
88-
89-
@allowed_groups.setter
90-
def allowed_groups(self, value):
91-
self.settings.allowed_groups = value
92-
93-
@property
94-
def create_ticket(self):
95-
return self.settings.getProperty("create_ticket")
96-
97-
@create_ticket.setter
98-
def create_ticket(self, value):
99-
self.settings.create_ticket = value
100-
101-
@property
102-
def create_restapi_ticket(self):
103-
return self.settings.getProperty("create_restapi_ticket")
104-
105-
@create_restapi_ticket.setter
106-
def create_restapi_ticket(self, value):
107-
self.settings.create_restapi_ticket = value
108-
109-
@property
110-
def scope(self):
111-
return self.settings.getProperty("scope")
112-
113-
@scope.setter
114-
def scope(self, value):
115-
self.settings.scope = value
116-
117-
@property
118-
def use_pkce(self):
119-
return self.settings.getProperty("use_pkce")
120-
121-
@use_pkce.setter
122-
def use_pkce(self, value):
123-
self.settings.use_pkce = value
124-
125-
@property
126-
def use_deprecated_redirect_uri_for_logout(self):
127-
return self.settings.getProperty("use_deprecated_redirect_uri_for_logout")
128-
129-
@use_deprecated_redirect_uri_for_logout.setter
130-
def use_deprecated_redirect_uri_for_logout(self, value):
131-
self.settings.use_deprecated_redirect_uri_for_logout = value
132-
133-
@property
134-
def use_modified_openid_schema(self):
135-
return self.settings.getProperty("use_modified_openid_schema")
136-
137-
@use_modified_openid_schema.setter
138-
def use_modified_openid_schema(self, value):
139-
self.settings.use_modified_openid_schema = value
140-
141-
@property
142-
def user_property_as_userid(self):
143-
return self.settings.getProperty("user_property_as_userid")
144-
145-
@user_property_as_userid.setter
146-
def user_property_as_userid(self, value):
147-
self.settings.user_property_as_userid = value
148-
149-
@property
150-
def identity_domain_name(self):
151-
return self.settings.getProperty("identity_domain_name")
24+
def __getattr__(self, name):
25+
if self.propertymap and name in self.propertymap:
26+
return self.settings.getProperty(name)
27+
else:
28+
raise AttributeError(f"{name} not in oidcsettings")
15229

153-
@identity_domain_name.setter
154-
def identity_domain_name(self, value):
155-
self.settings.identity_domain_name = value
30+
def __setattr__(self, name, value):
31+
if self.propertymap and name in self.propertymap:
32+
if "w" in self.propertymap[name].get("mode", ""):
33+
return setattr(self.settings, name, value)
34+
else:
35+
raise TypeError(f"{name} readonly in oidcsettings")
36+
else:
37+
super().__setattr__(name, value)
15638

15739

15840
class OIDCSettingsForm(controlpanel.RegistryEditForm):
@@ -167,9 +49,9 @@ def getContent(self):
16749

16850
def updateWidgets(self):
16951
super().updateWidgets()
170-
modes = {p["id"]: p["mode"] for p in self.getContent().settings.propertyMap()}
171-
for id, widget in self.widgets.items():
172-
if id in modes and "w" not in modes.get(id):
52+
pmap = self.getContent().settings.propertymap
53+
for name, widget in self.widgets.items():
54+
if name in pmap and "w" not in pmap[id].get("mode", ""):
17355
widget.mode = DISPLAY_MODE
17456

17557
def applyChanges(self, data):

0 commit comments

Comments
 (0)