From 85af4cb8b326e4f0d07f7e183a3add570e9de9a1 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Sun, 15 Mar 2009 02:28:40 -0400 Subject: [PATCH] Add CreateGroup support. Signed-off-by: Evan Broder --- afs/_pts.pyx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/afs/_pts.pyx b/afs/_pts.pyx index 30929ef..707ab43 100644 --- a/afs/_pts.pyx +++ b/afs/_pts.pyx @@ -4,6 +4,12 @@ cdef import from "afs/ptuser.h": enum: PR_MAXNAMELEN + enum: + PRGRP + + enum: + ANONYMOUSID + ctypedef char prname[PR_MAXNAMELEN] struct namelist: @@ -152,3 +158,21 @@ cdef class PTS: if code != 0: raise Exception("Failed to create user: %s" % afs_error_message(code)) return cid + + def CreateGroup(self, name, owner, id=None): + cdef afs_int32 code, cid + + name = name[:PR_MAXNAMELEN].lower() + oid = self.NameToId(owner) + if oid == ANONYMOUSID: + raise Exception("Error creating group: owner does not exist") + + if id is not None: + cid = id + code = ubik_PR_INewEntry(self.client, 0, name, cid, oid) + else: + code = ubik_PR_NewEntry(self.client, 0, name, PRGRP, oid, &cid) + + if code != 0: + raise Exception("Failed to create group: %s" % afs_error_message(code)) + return cid -- 1.7.9.5