summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bugzilla/base.py13
-rw-r--r--bugzilla/rhbugzilla.py4
2 files changed, 17 insertions, 0 deletions
diff --git a/bugzilla/base.py b/bugzilla/base.py
index 3b07078..0fde57e 100644
--- a/bugzilla/base.py
+++ b/bugzilla/base.py
@@ -357,6 +357,9 @@ class BugzillaBase(object):
def _query(self,query):
'''IMPLEMENT ME: Query bugzilla and return a list of matching bugs.'''
raise NotImplementedError
+ def _updateperms(self,user,action,group):
+ '''IMPLEMEMT ME: Update Bugzilla user permissions'''
+ raise NotImplementedError
# these return Bug objects
def getbug(self,id):
@@ -665,6 +668,16 @@ class BugzillaBase(object):
bug_id = self._createbug(**data)
return Bug(self,bug_id=bug_id)
+ def updateperms(self,user,action,groups):
+ '''A method to update the permissions (group membership) of a bugzilla
+ user. Takes the following:
+
+ user: The e-mail address of the user to be acted upon
+ action: either add or rem
+ groups: list of groups to be added to (i.e. ['fedora_contrib'])
+ '''
+ self._updateperms(user,action,groups)
+
class CookieResponse:
'''Fake HTTPResponse object that we can fill with headers we got elsewhere.
We can then pass it to CookieJar.extract_cookies() to make it pull out the
diff --git a/bugzilla/rhbugzilla.py b/bugzilla/rhbugzilla.py
index 47a3e22..8eeed0d 100644
--- a/bugzilla/rhbugzilla.py
+++ b/bugzilla/rhbugzilla.py
@@ -326,6 +326,10 @@ class RHBugzilla(bugzilla.base.BugzillaBase):
Returns bug_id'''
r = self._proxy.bugzilla.createBug(data)
return r[0]
+ # Methods for updating a user
+ def _updateperms(self,user,action,groups):
+ r = self._proxy.bugzilla.updatePerms(user, action, groups, self.user)
+ return r
class RHBugzilla3(Bugzilla32, RHBugzilla):
'''Concrete implementation of the Bugzilla protocol. This one uses the