Coverage for gws-app/gws/base/auth/system_provider.py: 29%

35 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1import gws 

2 

3from . import user as user_module 

4 

5 

6class Object(gws.AuthProvider): 

7 users: dict 

8 type = 'system' 

9 

10 def configure(self): 

11 self.uid = 'gws.base.auth.provider.system' 

12 self.allowedMethods = [] 

13 

14 g = user_module.GuestUser(self, roles=[gws.c.ROLE_GUEST, gws.c.ROLE_ALL]) 

15 g.attributes = {} 

16 g.displayName = '' 

17 g.localUid = 'guest' 

18 g.loginName = '' 

19 g.uid = gws.u.join_uid(self.uid, g.localUid) 

20 

21 s = user_module.SystemUser(self, roles=[]) 

22 s.attributes = {} 

23 s.displayName = '' 

24 s.localUid = 'system' 

25 s.loginName = '' 

26 s.uid = gws.u.join_uid(self.uid, s.localUid) 

27 

28 self.users = {'guest': g, 'system': s} 

29 

30 def authenticate(self, method, credentials): 

31 # system and guest cannot log in 

32 return None 

33 

34 def serialize_user(self, user): 

35 if user is self.users['guest']: 

36 return 'guest' 

37 if user is self.users['system']: 

38 return 'system' 

39 raise gws.Error(f'wrong user for system.serialize: {user.uid!r}') 

40 

41 def unserialize_user(self, data): 

42 if data in self.users: 

43 return self.users[data] 

44 raise gws.Error(f'wrong data for system.unserialize: {data!r}') 

45 

46 def get_user(self, local_uid): 

47 return self.users[local_uid]