Ejemplo n.º 1
0
 def _add_default_login():
     l_obj = LoginData()
     l_obj.Name = 'admin'
     l_obj.Key = 0
     l_obj.Active = True
     l_obj.LoginFullName = 'Administrator'
     l_obj.LoginPasswordCurrent = 'admin'
     l_obj.LoginPasswordNew = ''
     l_obj.LoginPasswordChangeFlag = False
     l_obj.LoginRole = 1
     LOG.warn('Adding admin login.')
     return l_obj
Ejemplo n.º 2
0
 def _read_one_login(p_xml):
     """
     @param p_xml: is the element of one login
     """
     l_obj = LoginData()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     l_obj.LoginFullName = PutGetXML.get_text_from_xml(p_xml, 'FullName')
     l_obj.LoginPasswordCurrent = PutGetXML.get_text_from_xml(
         p_xml, 'Password')
     l_obj.LoginRole = PutGetXML.get_text_from_xml(p_xml, 'Role')
     LOG.info('Loaded login "{}"'.format(l_obj.LoginFullName))
     return l_obj
Ejemplo n.º 3
0
 def LoadConfig(self):
     """ Load the Mqtt xml info.
     """
     self.m_pyhouse_obj.Computer.Web = WebInformation()  # Clear before loading.
     self.m_pyhouse_obj.Computer.Web.Logins = LoginData()  # Clear before loading.
     l_ret = webXml.read_web_xml(self.m_pyhouse_obj)
     self.m_pyhouse_obj.Computer.Web = l_ret
     LOG.info('Loaded Web Config')
Ejemplo n.º 4
0
 def validate_user(self, p_obj):
     """
     TODO - switch to twisted.cred and validate the user using twisted.
             we will get an avatar (twisted definition)
     @param p_obj: is from the browser login screen
     """
     l_login_obj = LoginData()
     l_login_obj.LoginName = p_obj['Name']
     l_login_obj.LoginPasswordCurrent = p_obj['PasswordCurrent']
     #  LOG.info('Login Attempt using: {}'.format(PrettyFormatAny.form(l_login_obj, 'Login Obj')))
     #
     if l_login_obj.LoginName in self.m_pyhouse_obj.Computer.Web.Logins:
         pass
     for l_user in self.m_pyhouse_obj.Computer.Web.Logins.values():
         #  LOG.debug(PrettyFormatAny.form(l_user, 'User Obj'))
         if l_user.Name == l_login_obj.LoginName:
             #  LOG.debug('User Matched')
             if l_user.LoginPasswordCurrent == l_login_obj.LoginPasswordCurrent:
                 #  LOG.debug('Password Matched')
                 l_login_obj.IsLoggedIn = True
                 l_login_obj.LoginRole = l_user.LoginRole
                 l_login_obj.LoginFullName = l_user.LoginFullName
                 l_topic = 'computer/browser/login'
                 self.m_pyhouse_obj._APIs.Core.MqttAPI.MqttPublish(l_topic, l_login_obj)  #  lighting/web/{}/control
             return l_login_obj
     return l_login_obj
Ejemplo n.º 5
0
 def putUsersData(self, p_json):
     """A new/changed/deleted user is returned.  Process it and update the internal data.
     """
     l_json = json_tools.decode_json_unicode(p_json)
     l_ix = int(l_json['Key'])
     l_delete = l_json['Delete']
     if l_delete:
         try:
             del self.m_pyhouse_obj.Computer.Web.Logins[l_ix]
         except AttributeError:
             LOG.error("Failed to delete user - JSON: {}".format(l_json))
         return
     try:
         l_obj = self.m_pyhouse_obj.Computer.Web.Logins[l_ix]
     except KeyError:
         l_obj = LoginData()
     l_obj.Name = l_json['Name']
     l_obj.Active = l_json['Active']
     l_obj.Key = l_ix
     l_obj.LoginFullName = l_json['FullName']
     l_obj.LoginPasswordCurrent = l_json['Password_1']
     l_obj.LoginRole = l_json['Role']
     self.m_pyhouse_obj.Computer.Web.Logins[l_ix] = l_obj
Ejemplo n.º 6
0
 def getUsersData(self):
     """
     Get a lot of server JSON data and pass it to the client browser.
     """
     l_users = self.m_pyhouse_obj.Computer.Web.Logins
     # LOG.debug(PrettyFormatAny.form(l_users, 'Login users'))
     if l_users == {}:
         l_users[0] = LoginData()
         l_users[0].Name = 'admin'
         l_users[0].LoginPasswordCurrent = 'admin'
         l_users[0].LoginFullName = 'Administrator'
         l_users[0].LoginRole = 1
         self.m_pyhouse_obj.Computer.Web.Logins = l_users
         # LOG.debug('Creating fake user since there was none')
     l_json = json_tools.encode_json(l_users)
     # LOG.info('Fetched {}'.format(l_json))
     return l_json
Ejemplo n.º 7
0
 def setUp(self, p_root):
     self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root)
     self.m_xml = SetupPyHouseObj().BuildXml(p_root)
     self.m_pyhouse_obj.Computer.Web = WebInformation()
     self.m_pyhouse_obj.Computer.Web.Logins = LoginData()
     self.m_api = webXml()