func (Data *Data) Manage_Login(request *list.Element, Db *sql.DB, Dlist *devices.All_Devices) (er error) { req := request.Value.(*protocol.Request) er = nil flag := true var answer []byte if req.Rtype != TYPELOG { er = errors.New("Bad type to Manage_Login") answer = Data.Manage_ack(TYPELOG, 0, int32(0)) } else { if Data.Device == nil { Data.Device, er = Dlist.GetDevice(request, Db, Data.Lst_users) } if er == nil { device := Data.Device.Value.(*devices.Device) if len(req.Spec.(protocol.Log).Email) <= 1 { Data.Logged = DEFAULTUSER Data.User = device.UserDefault } else { Data.User = Data.Lst_users.Check_user(request, Db, device.Historic) if Data.User == nil { flag = false Data.Logged = DEFAULTUSER device.UserSpec = nil Data.User = device.UserDefault } else { Data.Logged = USERLOGGED device.UserSpec = Data.User device.AddUserSpecOnHistory(Data.User) } } } if er != nil { answer = Data.Manage_ack(TYPELOG, 0, int32(0)) } else if flag == false { answer = Data.Manage_ack(TYPELOG, 0, int32(2)) } else { answer = Data.Manage_ack(TYPELOG, 0, int32(1)) } } Data.Lst_asw.PushBack(answer) return er }