# IP based autologin -Vision

**URL:** <https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [December 6, 2022, 7:31am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266 "2022-12-06T07:31:59Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dharani\_T](https://avatars.discourse-cdn.com/v4/letter/d/bc8723/32.png) [@Dharani\_T](https://forum.inductiveautomation.com/u/Dharani_T)\
**Post date:** [December 6, 2022, 7:31am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266/1 "2022-12-06T07:31:59Z")

</div>

Hi,  
I would like to have the below functionality-

When a person from M-01 area launches the application, machineboard for this machine should display directly with 6 menus above. he should not be able to navigate to other icons.

Similarly when a person from M-02 launches, same applies and he will not be able to view other machine details.

This user login information can be distinguished with their login IP. for eg :if 172.16.10.90 is for M-01, 172.16.10.91 is for M-02.

Client event script Used:

```python
ipAddress = system.tag.read("[System]Client/Network/IPAddress").value 
query = """SELECT Process as Process , MachineID as MachineID FROM cdcms.tbl_ip_details where IP_Address=?""" 
userInfo = system.db.runPrepQuery(query,[ipAddress])[0]
window1="Main Windows/Machine/Machine Board"
window2="Main Windows/Machine/Machine Board-East Dock"
window3="Main Windows/Machine/Machine Board-West Dock"
system.nav.openWindow("window1",{"Process":Process},{"MachineID":MachineID} )
system.nav.openWindow("window2",{"Process":Process},{"MachineNo":MachineID} )
system.nav.openWindow("window3")

```

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/2/129364bafae4a3419207bb46b43b67240d21cd6a.png)  
I am getting below error:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/3/f31fdc17935a8a64d883f78387a5c7ba9929193c.png)

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [December 6, 2022, 10:39am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266/2 "2022-12-06T10:39:35Z")

</div>

In your code sample, I don't see a definition for `Process` or `MachineID`.

---

<div class="post-metadata">

**Author:** ![Dharani\_T](https://avatars.discourse-cdn.com/v4/letter/d/bc8723/32.png) [@Dharani\_T](https://forum.inductiveautomation.com/u/Dharani_T)\
**Post date:** [December 6, 2022, 10:50am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266/3 "2022-12-06T10:50:45Z")

</div>

How to assign the results from below query to a variable.

```auto
query = """SELECT Process as Process , MachineID as MachineID FROM cdcms.tbl_ip_details where IP_Address=?""" 

```

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [December 6, 2022, 10:56am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266/4 "2022-12-06T10:56:46Z")

</div>

> [@Dharani\_T](#):
>
> ```auto
> query = """SELECT Process as Process , MachineID as MachineID FROM cdcms.tbl_ip_details where IP_Address=?""" 
> userInfo = system.db.runPrepQuery(query,[ipAddress])[0]
> 
> ```

Remove the `"""` from the query. `runPrepQuery` will pass the data as a string.

```auto
query = "SELECT Process, MachineID 
         FROM cdcms.tbl_ip_details WHERE IP_Address = ?"
userInfo = system.db.runPrepQuery(query, [ipAddress])[0]

```

`Process AS Process, etc.` is redundant so I've removed the `AS` parts.

---

<div class="post-metadata">

**Author:** ![Dharani\_T](https://avatars.discourse-cdn.com/v4/letter/d/bc8723/32.png) [@Dharani\_T](https://forum.inductiveautomation.com/u/Dharani_T)\
**Post date:** [December 6, 2022, 11:05am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266/5 "2022-12-06T11:05:19Z")

</div>

Still i am getting the same error

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [December 6, 2022, 11:09am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266/6 "2022-12-06T11:09:33Z")

</div>

You will need to create variables and assign the values from userInfo to them.  
I'm not where I can test code, but it should look something like this:

```auto
Process = userInfo.getValueAt(0,"Process")
MachineID = userInfo.getValueAt(0,"MachineID")

```

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [December 6, 2022, 11:14am UTC](https://forum.inductiveautomation.com/t/ip-based-autologin-vision/67266/7 "2022-12-06T11:14:35Z")

</div>

> [@Dharani\_T](#):
>
> `system.nav.openWindow("window1",{"Process":Process},{"MachineID":MachineID} )`

The user manual says the syntax is  
`system.nav.openWindow(path, [params])`

Try,

```auto
system.nav.openWindow("window1",
    {"Process": Process, "MachineID": MachineID})

```

Mind your spacing in your code. Standard is no space before punctuation and one space after punctuation. It will improve legibility.
