package com.sromku.simple.fb;
import com.facebook.internal.SessionAuthorizationType;
/**
* Hopefully all facebook permissions.
*
* @author sromku
* @see https://developers.facebook.com/docs/reference/login/
* @see https://developers.facebook.com/docs/reference/fql/permissions/
*/
public enum Permission {
PUBLIC_PROFILE("public_profile", Type.READ),
USER_ABOUT_ME("user_about_me", Type.READ),
USER_ACTIONS_BOOKS("user_actions.books", Type.READ),
USER_ACTIONS_MUSIC("user_actions.music", Type.READ),
USER_ACTIONS_NEWS("user_actions.news", Type.READ),
USER_ACTIONS_VIDEO("user_actions.video", Type.READ),
USER_ACTIVITIES("user_activities", Type.READ),
USER_BIRTHDAY("user_birthday", Type.READ),
USER_EDUCATION_HISTORY("user_education_history", Type.READ),
USER_EVENTS("user_events", Type.READ),
USER_FRIENDS("user_friends", Type.READ),
USER_GAMES_ACTIVITY("user_games_activity", Type.READ),
USER_GROUPS("user_groups", Type.READ),
USER_HOMETOWN("user_hometown", Type.READ),
USER_INTERESTS("user_interests", Type.READ),
USER_LIKES("user_likes", Type.READ),
USER_LOCATION("user_location", Type.READ),
USER_PHOTOS("user_photos", Type.READ),
USER_RELATIONSHIPS("user_relationships", Type.READ),
USER_RELATIONSHIP_DETAILS("user_relationship_details", Type.READ),
USER_RELIGION_POLITICS("user_religion_politics", Type.READ),
USER_STATUS("user_status", Type.READ),
USER_TAGGED_PLACES("user_tagged_places", Type.READ),
USER_VIDEOS("user_videos", Type.READ),
USER_WEBSITE("user_website", Type.READ),
USER_WORK_HISTORY("user_work_history", Type.READ),
READ_FRIENDLISTS("read_friendlists", Type.READ),
READ_INSIGHTS("read_insights", Type.READ),
READ_MAILBOX("read_mailbox", Type.READ),
READ_STREAM("read_stream", Type.READ),
EMAIL("email", Type.READ),
PUBLISH_ACTION("publish_actions", Type.PUBLISH),
RSVP_EVENT("rsvp_event", Type.PUBLISH),
MANAGE_NOTIFICATIONS("manage_notifications", Type.PUBLISH),
MANAGE_PAGES("manage_pages", Type.PUBLISH);
/**
* Permission type enum: <li>READ</li> <li>PUBLISH</li><br>
*/
public static enum Type {
PUBLISH(SessionAuthorizationType.PUBLISH),
READ(SessionAuthorizationType.READ);
private SessionAuthorizationType sessionAuthorizationType;
private Type(SessionAuthorizationType sessionAuthorizationType) {
this.sessionAuthorizationType = sessionAuthorizationType;
}
};
public static enum Role {
/**
* Manage admins<br>
* Full Admin
*/
ADMINISTER,
/**
* Edit the Page and add apps<br>
* Full Admin, Content Creator
*/
EDIT_PROFILE,
/**
* Create posts as the Page<br>
* Full Admin, Content Creator
*/
CREATE_CONTENT,
/**
* Respond to and delete comments, send messages as the Page<br>
* Full Admin, Content Creator, Moderator
*/
MODERATE_CONTENT,
/**
* Create ads and unpublished page posts<br>
* Full Admin, Content Creator, Moderator, Ads Creator
*/
CREATE_ADS,
/**
* View Insights<br>
* Full Admin, Content Creator, Moderator, Ads Creator, Insights Manager
*/
BASIC_ADMIN
}
private String mValue;
private SessionAuthorizationType mType;
private Permission(String value, Type type) {
mValue = value;
mType = type.sessionAuthorizationType;
}
public String getValue() {
return mValue;
}
public SessionAuthorizationType getType() {
return mType;
}
public static Permission fromValue(String pemissionValue) {
for (Permission permission : values()) {
if (permission.mValue.equals(pemissionValue)) {
return permission;
}
}
return null;
}
}