|
- from typing import Callable, Iterator, Optional
- from sqlalchemy import select
- from sqlalchemy.orm import Session
-
-
- #from ..models.user import User
- from models.user import User
- from .security import hash_password, manager
- import xml.dom.minidom
-
-
- import hashlib
-
- from .ldap import LDAPConsole
- # lc = None # LDAP disabilitato temporaneamente
-
- def getText( nodelist):
- rc = []
- for node in nodelist:
- if node.nodeType == node.TEXT_NODE:
- rc.append(node.data)
- return ''.join(rc)
-
- def check_is_admin(uidname):
- # use the parse() function to load and parse an XML file
- doc = xml.dom.minidom.parse("/conf/etc/useradmin/mnusers.xml");
-
- ssonode = doc.getElementsByTagName("useradmin")
- print ( "%d ssonode:" % ssonode.length)
- is_adminlevel= "";
- for skill in ssonode:
- binddn = getText(skill.getElementsByTagName("uid")[0].childNodes)
- #print(binddn)
- if binddn == uidname:
- is_adminlevel = getText (skill.getElementsByTagName("privilegi")[0].childNodes)
- #print (is_adminlevel)
- break
- return is_adminlevel
-
-
- @manager.user_loader()
- def get_user_by_name(
- name: str,
- #db: Optional[Session] = None,
- #session_provider: Callable[[], Iterator[Session]] = None
- ) -> Optional[User]:
- """
-
- Args:
- name: The name of the user
-
- Returns:
- The user object or none
- """
-
- #if db is None and session_provider is None:
- # raise ValueError("db and session_provider cannot both be None.")
-
- # if db is None:
- # db = next(session_provider())
- print (name)
-
- results = lc.doLdapGetUser("ou=users", username=name)
- print (results)
- #user = db.query(User).where(User.username == name).first()
- user=User()
- if results['authen'] == "yeah":
- print ('Welcome', results['authen'])
- user.username = name
- user.password = results['data']['ntPassword']
- else:
- print (' wrong!')
- print (check_is_admin(name))
- if check_is_admin(name) == "gruppo4":
- user.is_admin = True
- print (user)
- return user
-
-
- # def create_user(name: str, password: str, db: Session, is_admin: bool = False) -> User:
- # """
- # Creates and commits a new user object to the database
-
- # Args:
- # name: The name of the user
- # password: The plaintext password
- # db: The active db session
- # is_admin: Whether the user is a admin, defaults to false
-
- # Returns:
- # The newly created user.
- # """
- # hashed_pw = hash_password(password)
- # user = User(username=name, password=hashed_pw, is_admin=is_admin)
- # db.add(user)
- # db.commit()
- # return user
-
-
- # def create_post(text: str, owner: User, db: Session) -> Post:
- # post = Post(text=text, owner=owner)
- # db.add(post)
- # db.commit()
- # db.close()
- # return post
|