anhapu / SDFplay

3 stars 0 forks source link

Autorisierungsprobleme #4

Closed stubb closed 11 years ago

stubb commented 11 years ago

Ich verstehe nicht genau wie ich die Role des User mit dem Enum vergleichen kann im Bsp unten bekomm ich einen incomparable types: Roles and Role Fehler.

diff --git a/app/controllers/Secured.java b/app/controllers/Secured.java
index 455e653..9af78ba 100644
--- a/app/controllers/Secured.java
+++ b/app/controllers/Secured.java
@@ -4,6 +4,7 @@ import play.mvc.*;
 import play.mvc.Http.*;

 import models.*;
+import models.enums.Roles;

 public class Secured extends Security.Authenticator
@@ -23,6 +24,16 @@ public class Secured extends Security.Authenticator
     public static boolean editBook(User user){
        return true;
     }
-    

+               /**
+                * Defines who's allowed to see a profile.
+                * You can see your own profile and ADMINs can see a profile.
+                */
+               public static boolean showUserProfile(User user) {
+                       boolean allowed = false;
+                       if (user.id == Common.currentUser().id || Roles.ADMIN == Common.currentUser().ro
+                               allowed = true;
+                       }
+                       return allowed;
+               }
 }

und das zweite was ich nciht ganz versteh, reicht es einfach die Secured Methode aufzurufen? Und warum wird trotz import von play.mvc.Security.*; UserController.java:50: error: package Security does not exist [error] @Security.Authenticated(Secured.class) rausgehauen?

diff --git a/app/controllers/UserController.java b/app/controllers/UserController.java
index c5c2a15..9fb3b45 100644
--- a/app/controllers/UserController.java
+++ b/app/controllers/UserController.java
@@ -47,9 +47,10 @@ public class UserController extends Controller {
                return redirect(routes.Application.index());
        }

-       //@Security.Authenticated(Secured.class)
+       @Security.Authenticated(Secured.class)
        public static Result showProfile(Long id) {
                User searchedUser = User.findById(id);
+               Secured.showUserProfile(searchedUser);
                if (searchedUser != null) {
                        return ok(userProfile.render(searchedUser));
                }

Wäre cool wenn da mal jemand drüber gucken kann

fabiankirstein commented 11 years ago

Role ist im User Model vom falschen Typ. Das heißt Roles. Und du musst play.mvc.Security importen nicht play.mvc.Security.*. Ich wolle nen Bug Fix pushen aber GitHub scheint technische Probleme. Geht grad nicht. Benutzt du eine richtige IDE, wie Eclipse. Da werden dir die richtigen Pakete automatisch importiert.

stubb commented 11 years ago

Vielen Dank, werd das gleich mal testen. Ja das sagt auch die status page, kann auch grad nichts pushen. Ich benutze VIM, also mehr eine Art editor.