Skip to content
Snippets Groups Projects
Forked from DM / dm-docs
261 commits behind, 606 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
userInfoSessionControllerImpl.py 1.29 KiB
#!/usr/bin/env python

#
# Implementation for user info controller.
#

from dm.common.objects.dmObject import DmObject
from dm.common.objects.dmObjectManager import DmObjectManager
from dm.common.db.api.userDbApi import UserDbApi
from dm.ds_web_service.service.impl.experimentManager import ExperimentManager

class UserInfoSessionControllerImpl(DmObjectManager):
    """ User info controller implementation class. """

    def __init__(self):
        DmObjectManager.__init__(self)
        self.userDbApi = UserDbApi()

    def getUsers(self):
        return self.userDbApi.getUsers()

    def getUserById(self, id):
        return self.userDbApi.getUserById(id)

    def getUserByUsername(self, username):
        return self.userDbApi.getUserByUsername(username)

    def addUserExperimentRole(self, username, experimentName, roleName):
        userInfo = self.userDbApi.addUserExperimentRole(username, experimentName, roleName)
        ExperimentManager.getInstance().addUserToGroup(username, experimentName)
        return userInfo

    def deleteUserExperimentRole(self, username, experimentName, roleName):
        userInfo = self.userDbApi.deleteUserExperimentRole(username, experimentName, roleName)
        ExperimentManager.getInstance().deleteUserFromGroup(username, experimentName)
        return userInfo