如何根据Parse用户类型属性授予某些用户查看视图的权限?

时间:2014-04-05 00:57:08

标签: parse-platform

假设我有两种类型的用户:学生教师。我如何才能仅允许教师转到与学生不同的观点,例如

ObjectID    UserName   Password    Type
-------     --------   --------   ------
8uJ03j7     user#1      ***        student
2835ruJ     user#2      ***        instructor
2835JhL     user#3      ***        student

我们说我们有一个学校用的应用程序,学生可以登录并查看他们的成绩,而教师可以输入数据并进行修改。 我问这个问题,因为据我所知,你不能在Parse.com中有两个使用登录类这就是为什么我要区分两种不同类型的用户。 感谢

3 个答案:

答案 0 :(得分:1)

我的解释与MannyFle和ismailgulek不同。我的解释:根据登录的用户类型,您希望应用程序自动将其引导至教师和学生的不同视图。没有要隐藏的按钮等。

要实现此目的,您可以在AppDelegate中执行以下操作:

- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
NSString *userType = user[@"type"];
if ([userType isEqualToString:@"instructor"]) {
    self.window.rootViewController = instructorViewController;
} else {
    self.window.rootViewController = studentViewController;            
}

[self.window makeKeyAndVisible];

我确定你已经在你的appdelegate中实现了didLogInUser。在那里检查usertype。无需使用单身,因为您可以在应用中的任何位置使用[PFUser currentUser]

当然,在将其设置为rootViewController之前,您需要在if语句中初始化正确的讲师/ studentview控制器。

答案 1 :(得分:0)

不要试图阻止任何用户登录。我认为这是控制任何事情的一种非常糟糕的方式。您可以扩展PFUser类并添加一个额外的字段,如type,并在用户登录后执行任何控制。

答案 2 :(得分:0)

你可以在这里做的是隐藏推动视图的按钮,只有教师才能看到,如果用户登录的是学生类型。

在具有推动视图的按钮的视图中,只有教师可以使用这样做:

在.h文件中,为按钮创建一个属性,按此方式推送视图:

@property (nonatomic,strong) UIButton *buttonThatPushesInstructorView;

在.m文件中:

在视图的viewWillAppear方法中,执行以下检查:

  if ([[[PFUser currentUser]objectForKey:@"type"]isEqualToString:@"Instructor"]) {
        _buttonThatPushesInstructorView.hidden=NO;
    }else{

        _buttonThatPushesInstructorView.hidden=YES;
    }

这样,当视图加载时,只有“讲师”类型的用户才能访问推送教师视图的按钮。

希望它有所帮助!