How can I assign a user (or a user list) to a Permission set using DACS Station API?

How can I assign a user (or a user list) to a Permission set using DACS Station API?

Best Answer

  • @dgstudio

    Thank you for reaching out to us.

    It should be the setDacsPermissionSetUsers method, an mentioned in the DACS WEB SERVICES PROGRAMMER’S GUIDE.

    The setDacsPermissionSetUsers method updates the list of users assigned to the supplied Data Access Control System permission set.

    The Python code looks like this.

    from suds.client import Client
    import ssl

    dacsLogin  = "<DACS username>"
    dacsPasswd = "<DACS password>"
    dacsWSurl  = "http://<DACS_SERVER>:8080/DacsWS/DacsWebServiceService?wsdl"

    client = Client(dacsWSurl)
    _dl = client.factory.create('dacsAdministratorLogin')
    _dl.aAdministratorName.mAdministratorName         = dacsLogin
    _dl.aAdministratorPassword.mAdministratorPassword = dacsPasswd

    _siteName = client.factory.create('siteName')
    _siteName.mSiteName = "<DACS SiteName>"

    _permissionSet = client.factory.create('dacsPermissionSet')
    _permissionSet.mDacsPermissionSet = "<DACS Permission SET>"

    _dacsPermissionSetUserSubscriptions = client.factory.create('dacsPermissionSetUserSubscriptions')
    _dacsPermissionSetUserSubscriptions.mAllowed = True
    _dacsPermissionSetUserSubscriptions.mName = '<DACS User>'

    _setDacsPermissionSetUsers = client.service.setDacsPermissionSetUsers(_dl, _siteName, _permissionSet, [_dacsPermissionSetUserSubscriptions])
    print(_setDacsPermissionSetUsers.aResult)


Answers

  • Hi @Jirapongse

    It works well thank you. Could you please advise how to adjust the Python code if we want to set PermSet for a list of users?

  • @dgstudio

    The code looks like this:

    _permissionSet = client.factory.create('dacsPermissionSet')
    _permissionSet.mDacsPermissionSet = "<DACS Permission Set>"


    _dacsPermissionSetUserSubscriptions = client.factory.create('dacsPermissionSetUserSubscriptions')


    _dacsPermissionSetUserSubscriptions.mAllowed = True
    _dacsPermissionSetUserSubscriptions.mName = '<DACS User1>'


    _dacsPermissionSetUserSubscriptions1 = client.factory.create('dacsPermissionSetUserSubscriptions')


    _dacsPermissionSetUserSubscriptions1.mAllowed = True
    _dacsPermissionSetUserSubscriptions1.mName = '<DACS User2>'



    _setDacsPermissionSetUsers = client.service.setDacsPermissionSetUsers(_dl, _siteName, _permissionSet, [_dacsPermissionSetUserSubscriptions,_dacsPermissionSetUserSubscriptions1])
    print(_setDacsPermissionSetUsers.aResult)
  • @Jirapongse thanks a lot for your prompt reply!

  • Could you kindly help us to optimize the code using cycle to assign a list of users?

  • @dgstudio

    Do you mean this code?

    _siteName = client.factory.create('siteName')
    _siteName.mSiteName = "<DACS SITE>"

    _permissionSet = client.factory.create('dacsPermissionSet')
    _permissionSet.mDacsPermissionSet = "<Permissoin Set>"

    _userList = ['<user1>','<user2>']
    _setUserSubcriptionList = []



    for _user in _userList:
       _dacsPermissionSetUserSubscriptions = client.factory.create('dacsPermissionSetUserSubscriptions')
       _dacsPermissionSetUserSubscriptions.mAllowed = True
       _dacsPermissionSetUserSubscriptions.mName = _user
    _setUserSubcriptionList.append(_dacsPermissionSetUserSubscriptions)



    _setDacsPermissionSetUsers = client.service.setDacsPermissionSetUsers(_dl, _siteName, _permissionSet, _setUserSubcriptionList)
    print(_setDacsPermissionSetUsers.aResult)