Revision: 1600 http://trac.macosforge.org/projects/calendarserver/changeset/1600 Author: dreid@apple.com Date: 2007-06-08 10:07:39 -0700 (Fri, 08 Jun 2007) Log Message: ----------- untabify, and format the if statements better. Modified Paths: -------------- CalendarServer/trunk/twistedcaldav/_sacl.c Modified: CalendarServer/trunk/twistedcaldav/_sacl.c =================================================================== --- CalendarServer/trunk/twistedcaldav/_sacl.c 2007-06-07 18:37:23 UTC (rev 1599) +++ CalendarServer/trunk/twistedcaldav/_sacl.c 2007-06-08 17:07:39 UTC (rev 1600) @@ -21,45 +21,51 @@ int mbr_check_service_membership(const uuid_t user, const char* servicename, int* ismember); /* - CheckSACL(userOrGroupName, service) - Checks user membership in a service. + CheckSACL(userOrGroupName, service) + Checks user or group membership in a service. */ static PyObject *appleauth_CheckSACL(PyObject *self, PyObject *args) { - char *username; - int usernameSize; - char *serviceName; - int serviceNameSize; - - // get the args - if (!PyArg_ParseTuple(args, "s#s#", &username, &usernameSize, &serviceName, &serviceNameSize)) - return NULL; - - // get a uuid for the user - uuid_t user; - int result = mbr_user_name_to_uuid(username, user); - int isMember = 0; - - if ( result != 0 ) - result = mbr_group_name_to_uuid(username, user); + char *username; + int usernameSize; + char *serviceName; + int serviceNameSize; - if ( result != 0 ) - return Py_BuildValue("i", (-1)); + // get the args + if (!PyArg_ParseTuple(args, "s#s#", &username, + &usernameSize, &serviceName, &serviceNameSize)) { + return NULL; + } - result = mbr_check_service_membership(user, serviceName, &isMember); - - if ( ( isMember == 1 ) || ( result == 2 ) ) { // passed - return Py_BuildValue("i", 0); - } - - return Py_BuildValue("i", (-2)); + // get a uuid for the user + uuid_t user; + int result = mbr_user_name_to_uuid(username, user); + int isMember = 0; + + if ( result != 0 ) { + // no uuid for the user, we might be a group. + result = mbr_group_name_to_uuid(username, user); + } + + if ( result != 0 ) { + return Py_BuildValue("i", (-1)); + } + + result = mbr_check_service_membership(user, serviceName, &isMember); + + if ( ( result == 0 && isMember == 1 ) || ( result == ENOENT ) ) { + // passed + return Py_BuildValue("i", 0); + } + + return Py_BuildValue("i", (-2)); } /* Method definitions. */ static struct PyMethodDef _sacl_methods[] = { - {"CheckSACL", appleauth_CheckSACL}, - {NULL, NULL} /* Sentinel */ + {"CheckSACL", appleauth_CheckSACL}, + {NULL, NULL} /* Sentinel */ }; void init_sacl(void) { - Py_InitModule("_sacl", _sacl_methods); + Py_InitModule("_sacl", _sacl_methods); }
participants (1)
-
source_changes@macosforge.org