Index: pkg/appengine/lib/api/users.dart |
diff --git a/pkg/appengine/lib/api/users.dart b/pkg/appengine/lib/api/users.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5d4d14a20fecc08b0e9575ae6c5389ce5d5b8590 |
--- /dev/null |
+++ b/pkg/appengine/lib/api/users.dart |
@@ -0,0 +1,48 @@ |
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+library appengine.api.users; |
+ |
+import 'dart:async'; |
+ |
+import 'package:gcloud/service_scope.dart' as ss; |
+ |
+class User { |
+ final String email; |
+ final String id; |
+ final String authDomain; |
+ final bool isAdmin; |
+ |
+ User({this.email, this.authDomain, this.id, this.isAdmin}); |
+ |
+ String toString() => email; |
+} |
+ |
+abstract class UserService { |
+ User get currentUser; |
+ |
+ Future<String> createLoginUrl(String destination); |
+ |
+ Future<String> createLogoutUrl(String destination); |
+} |
+ |
+/** |
+ * Register a new [UserService] object. |
+ * |
+ * Calling this outside of a service scope or calling it more than once inside |
+ * the same service scope will result in an error. |
+ * |
+ * See the `package:gcloud/service_scope.dart` library for more information. |
+ */ |
+void registerUserService(UserService service) { |
+ ss.register(#_appengine.users, service); |
+} |
+ |
+/** |
+ * The user service. |
+ * |
+ * Request handlers will be run inside a service scope which contains the |
+ * users service. |
+ */ |
+UserService get userService => ss.lookup(#_appengine.users); |