[CalendarServer-changes] [485] CalendarServer/branches/users/wsanchez/provisioning

source_changes at macosforge.org source_changes at macosforge.org
Wed Nov 15 18:54:18 PST 2006


Revision: 485
          http://trac.macosforge.org/projects/calendarserver/changeset/485
Author:   wsanchez at apple.com
Date:     2006-11-15 18:54:17 -0800 (Wed, 15 Nov 2006)

Log Message:
-----------
Implement verifyCredentials().
Make sure recordWithShortName() returns None for non-existant records.

Modified Paths:
--------------
    CalendarServer/branches/users/wsanchez/provisioning/support/CalendarServer.tmproj
    CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py
    CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py

Modified: CalendarServer/branches/users/wsanchez/provisioning/support/CalendarServer.tmproj
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning/support/CalendarServer.tmproj	2006-11-16 02:53:09 UTC (rev 484)
+++ CalendarServer/branches/users/wsanchez/provisioning/support/CalendarServer.tmproj	2006-11-16 02:54:17 UTC (rev 485)
@@ -2,6 +2,8 @@
 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
+	<key>currentDocument</key>
+	<string>../twistedcaldav/directory/cred.py</string>
 	<key>documents</key>
 	<array>
 		<dict>
@@ -15,6 +17,8 @@
 			<string>../twistedcaldav</string>
 		</dict>
 		<dict>
+			<key>expanded</key>
+			<true/>
 			<key>name</key>
 			<string>web2</string>
 			<key>regexFolderFilter</key>
@@ -31,8 +35,6 @@
 			<string>../../Twisted/twisted</string>
 		</dict>
 		<dict>
-			<key>expanded</key>
-			<true/>
 			<key>name</key>
 			<string>PyOpenDirectory</string>
 			<key>regexFolderFilter</key>
@@ -61,9 +63,131 @@
 	</array>
 	<key>fileHierarchyDrawerWidth</key>
 	<integer>200</integer>
+	<key>metaData</key>
+	<dict>
+		<key>../../Twisted/twisted/web2/dav/element/base.py</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>106</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>193</integer>
+		</dict>
+		<key>../../Twisted/twisted/web2/dav/resource.py</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>21</integer>
+				<key>line</key>
+				<integer>1046</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>1024</integer>
+		</dict>
+		<key>../../Twisted/twisted/web2/dav/static.py</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>11</integer>
+				<key>line</key>
+				<integer>115</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>44</integer>
+		</dict>
+		<key>../../Twisted/twisted/web2/http.py</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>15</integer>
+				<key>line</key>
+				<integer>160</integer>
+			</dict>
+			<key>columnSelection</key>
+			<false/>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>118</integer>
+			<key>selectFrom</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>120</integer>
+			</dict>
+			<key>selectTo</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>161</integer>
+			</dict>
+		</dict>
+		<key>../../Twisted/twisted/web2/static.py</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>40</integer>
+				<key>line</key>
+				<integer>387</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>357</integer>
+		</dict>
+		<key>../twistedcaldav/directory/cred.py</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>39</integer>
+				<key>line</key>
+				<integer>60</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>4</integer>
+		</dict>
+		<key>../twistedcaldav/directory/test/test_apache.py</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>48</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+	</dict>
+	<key>openDocuments</key>
+	<array>
+		<string>../twistedcaldav/directory/test/test_apache.py</string>
+		<string>../twistedcaldav/directory/cred.py</string>
+	</array>
 	<key>showFileHierarchyDrawer</key>
 	<true/>
 	<key>windowFrame</key>
-	<string>{{411, 104}, {1019, 1074}}</string>
+	<string>{{501, 128}, {1019, 1050}}</string>
 </dict>
 </plist>

Modified: CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py	2006-11-16 02:53:09 UTC (rev 484)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py	2006-11-16 02:54:17 UTC (rev 485)
@@ -25,7 +25,10 @@
     "FileDirectoryRecord",
 ]
 
+from crypt import crypt
+
 from twisted.python.filepath import FilePath
+from twisted.cred.credentials import UsernamePassword
 
 from twistedcaldav.directory.directory import DirectoryService, DirectoryRecord
 from twistedcaldav.directory.directory import UnknownRecordTypeError
@@ -76,7 +79,7 @@
                 else:
                     raise AssertionError("We shouldn't be here.")
 
-        raise NotImplementedError()
+        return None
 
     def recordWithGUID(self, guid):
         raise NotImplementedError()
@@ -94,7 +97,7 @@
 
         for entry in recordFile.open():
             if entry and entry[0] != "#":
-                shortName, rest = entry.split(":", 1)
+                shortName, rest = entry.rstrip("\n").split(":", 1)
                 yield shortName, rest
 
 class FileDirectoryRecord(DirectoryRecord):
@@ -128,4 +131,10 @@
                     continue
 
     def verifyCredentials(self, credentials):
-        raise NotImplementedError()
+        if self._cryptPassword in ("", "*", "x"):
+            return False
+
+        if isinstance(credentials, UsernamePassword):
+            return crypt(credentials.password, self._cryptPassword) == self._cryptPassword
+
+        return super(FileDirectoryRecord, self).verifyCredentials(credentials)

Modified: CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py	2006-11-16 02:53:09 UTC (rev 484)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py	2006-11-16 02:54:17 UTC (rev 485)
@@ -85,6 +85,7 @@
         for user in users:
             record = service.recordWithShortName("user", user)
             self.assertEquals(record.shortName, user)
+        self.assertEquals(service.recordWithShortName("user", "IDunnoWhoThisIsIReallyDont"), None)
 
     def test_recordWithShortName_group(self):
         """
@@ -94,6 +95,7 @@
         for group in groups:
             groupRecord = service.recordWithShortName("group", group)
             self.assertEquals(groupRecord.shortName, group)
+        self.assertEquals(service.recordWithShortName("group", "IDunnoWhoThisIsIReallyDont"), None)
 
     def test_groupMembers(self):
         """
@@ -120,6 +122,4 @@
         service = FileDirectoryService(basicUserFile)
         for user in users:
             userRecord = service.recordWithShortName("user", user)
-            self.assertUnless(userRecord.verifyCredentials(UsernamePassword(user, users[user])))
-
-    test_verifyCredentials.todo = "unimplemented"
+            self.failUnless(userRecord.verifyCredentials(UsernamePassword(user, users[user])))

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061115/902925aa/attachment.html


More information about the calendarserver-changes mailing list