示例#1
0
文件: manager.py 项目: actually/pasi
    def deleteUserFromGroup(self, auth_token, user, group, p4_port):
        """ Remove a Perforce user from a group. """
        Validation.checkAuth(auth_token)
        Validation.checkP4Port(p4_port)
        Validation.checkUser(user)
        Validation.checkGroup(group)
        
        log.info("Removing user %s from group %s on port %s." % (user, group, p4_port))

        self._deleteUserFromGroup(user, group, p4_port)
示例#2
0
文件: manager.py 项目: actually/pasi
    def addUserToGroup(self, auth_token, user, group, p4_port):
        """ Add Perforce user to a group. """
        Validation.checkAuth(auth_token)
        Validation.checkP4Port(p4_port)
        Validation.checkUser(user)
        Validation.checkGroup(group)

        log.info("Adding user %s to group %s on port %s." % (user, group, p4_port))

        self._addUserToGroup(user, group, p4_port)
示例#3
0
文件: manager.py 项目: actually/pasi
    def deleteUser(self, auth_token, user, p4_port):
        """ Delete a Perforce user. """
        Validation.checkAuth(auth_token)
        Validation.checkP4Port(p4_port)
        Validation.checkUser(user)

        log.info("Deleting user %s from port %s." % (user, p4_port))

        p4 = P4()
        p4.port = p4_port
        p4.user = config.admin_user
        p4.connect()

        opened = p4.run_opened("-u %s" % (user))

        # save host and client, since they will have to be changed
        p4host = p4.host
        p4client = p4.client

        # we can not delete a user unless they have no files open
        for file in opened:
            # to reopen the file, the client has to match
            # for client to match, host has to be set as well
            client = p4.fetch_client(file['client'])
            p4.client = file['client']
            p4.host = client['Host']
            p4.run_reopen(file['depotFile'])
            log.info("Taking over file: " + file['depotFile'])

        # restore host and client (for consistancy sake)
        p4.host = p4host
        p4.client = p4client

        output = p4.run_user("-f", "-d", user)

        p4.disconnect()

        self._deleteUserFromGroup(user, "users", p4_port)