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)
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)
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)