Coverage for gws-app/gws/plugin/account/admin_action.py: 0%
52 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1"""Account admin action."""
3from typing import Optional, cast
5import gws
6import gws.config.util
7import gws.base.action
8import gws.lib.mime
9import gws.base.edit.api as api
11from . import helper
13gws.ext.new.action('accountadmin')
16class Config(gws.base.action.Config):
17 """Account Admin action. (added in 8.1)"""
19 models: Optional[list[gws.ext.config.model]]
20 """Account data models."""
23class Props(gws.base.action.Props):
24 pass
27##
30class ResetRequest(gws.Request):
31 featureUid: str
34class ResetResponse(gws.Response):
35 feature: gws.FeatureProps
38class Object(gws.base.action.Object):
39 h: helper.Object
41 def configure(self):
42 self.h = cast(helper.Object, self.root.app.helper('account'))
44 @gws.ext.command.api('accountadminGetModels')
45 def api_get_models(self, req: gws.WebRequester, p: api.GetModelsRequest) -> api.GetModelsResponse:
46 return self.h.get_models_response(req, p, self.h.get_models(req, p))
48 @gws.ext.command.api('accountadminGetFeatures')
49 def api_get_features(self, req: gws.WebRequester, p: api.GetFeaturesRequest) -> api.GetFeaturesResponse:
50 return self.h.get_features_response(req, p, self.h.get_features(req, p))
52 @gws.ext.command.api('accountadminGetRelatableFeatures')
53 def api_get_relatable_features(self, req: gws.WebRequester, p: api.GetRelatableFeaturesRequest) -> api.GetRelatableFeaturesResponse:
54 return self.h.get_relatable_features_response(req, p, self.h.get_relatable_features(req, p))
56 @gws.ext.command.api('accountadminGetFeature')
57 def api_get_feature(self, req: gws.WebRequester, p: api.GetFeatureRequest) -> api.GetFeatureResponse:
58 return self.h.get_feature_response(req, p, self.h.get_feature(req, p))
60 @gws.ext.command.api('accountadminInitFeature')
61 def api_init_feature(self, req: gws.WebRequester, p: api.InitFeatureRequest) -> api.InitFeatureResponse:
62 return self.h.init_feature_response(req, p, self.h.init_feature(req, p))
64 @gws.ext.command.api('accountadminWriteFeature')
65 def api_write_feature(self, req: gws.WebRequester, p: api.WriteFeatureRequest) -> api.WriteFeatureResponse:
66 return self.h.write_feature_response(req, p, self.h.write_feature(req, p))
68 @gws.ext.command.api('accountadminDeleteFeature')
69 def api_delete_feature(self, req: gws.WebRequester, p: api.DeleteFeatureRequest) -> api.DeleteFeatureResponse:
70 return self.h.delete_feature_response(req, p, self.h.delete_feature(req, p))
72 @gws.ext.command.api('accountadminReset')
73 def api_reset(self, req: gws.WebRequester, p: ResetRequest) -> ResetResponse:
74 uid = p.featureUid
75 account = self.h.get_account_by_id(uid)
76 if not account:
77 raise gws.NotFoundError()
78 self.h.reset(account)
80 mc = self.h.model_context(req, p, gws.ModelOperation.read, gws.ModelReadTarget.editForm)
81 fs = self.h.adminModel.get_features([self.h.get_uid(account)], mc)
82 return ResetResponse(feature=self.h.feature_to_props(fs[0], mc))