6 * Daniel Perez <danielperez.arg@gmail.com>
8 * FIXME : FIX copyright
10 * This is an example to watch things in action. You can obviously modify things and logic as you see fit
13 require_once $gfwww.'include/pre.php';
14 require $gfconfig.'/plugins/oauthprovider/config.php';
18 // the header that displays for the project portion of the plugin
19 function oauthprovider_Project_Header($params) {
20 global $DOCUMENT_ROOT,$HTML,$id, $group_id;
22 $params['toptab']='oauthprovider';
27 site_project_header($params);
30 // the header that displays for the user portion of the plugin
31 function oauthprovider_User_Header($params) {
32 global $DOCUMENT_ROOT,$HTML,$user_id;
33 $params['toptab']='oauthprovider';
34 $params['user']=$user_id;
38 site_user_header($params);
41 if (!session_loggedin()) {
45 $user = session_get_user(); // get the session user
47 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
48 exit_error("Invalid User, Cannot Process your request for this user.", 'oauthprovider');
51 $type = getStringFromRequest('type');
52 $id = getStringFromRequest('id');
53 $name = getStringFromRequest('name');
54 $pluginname = 'oauthprovider';
57 exit_error("Cannot Process your request: No TYPE specified ",'oauthprovider'); // you can create items in Base.tab and customize this messages
58 } elseif ((!$name)&&(!$id)) {
59 exit_error("Cannot Process your request: No NAME or ID specified",'oauthprovider');
61 if ($type == 'group') {
63 $group = group_get_object_by_name($name);
64 $id = $group->getID();
66 else $group = group_get_object($id);
69 exit_error("Invalid Project", 'oauthprovider');
71 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
72 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
74 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group (optional)
75 if ( !$userperm->IsMember()) {
76 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
78 // other perms checks here...
79 oauthprovider_Project_Header(array('group'=>$group->getID(),'title'=>$pluginname . ' Project Plugin!','pagename'=>$pluginname,'sectionvals'=>array($group->getPublicName())));
80 // DO THE STUFF FOR THE PROJECT PART HERE
82 echo "We are in the Project oauthprovider plugin page for group (project) $id <br><br>";
84 } elseif ($type == 'user') {
85 if($name) $realuser = user_get_object_by_name($name);
86 else $realuser = user_get_object($id);
87 if (!($realuser) || !($realuser->usesPlugin($pluginname))) {
88 exit_error("First activate the User's $pluginname plugin through Account Manteinance Page", 'oauthprovider');
90 if ( (!$user) || ($user->getID() != $id)) { // if someone else tried to access the private oauthprovider part of this user
91 exit_error("Access Denied, You cannot access other user's personal $pluginname", 'oauthprovider');
93 oauthprovider_User_Header(array('title'=>'My '.$pluginname,'pagename'=>"$pluginname",'sectionvals'=>array($realuser->getUnixName())));
94 // DO THE STUFF FOR THE USER PART HERE
95 echo "We are in the User oauthprovider plugin page for user <br><br>";
97 } elseif ($type == 'admin') {
99 $group = group_get_object_by_name($name);
100 $id = $group->getID();
102 else $group = group_get_object($id);
105 exit_error("Invalid Project", 'oauthprovider');
107 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
108 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
110 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group
111 if ( !$userperm->IsMember()) {
112 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
114 //only project admin can access here
115 if ( $userperm->isAdmin() ) {
116 oauthprovider_Project_Header(array('group'=>$id, 'title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));
117 // DO THE STUFF FOR THE PROJECT ADMINISTRATION PART HERE
118 //echo "We are in the Project oauthprovider plugin page for <font color=\"#ff0000\">ADMINISTRATION</font> <br><br>";
121 exit_error("Access Denied, You are not a project Admin", 'oauthprovider');
125 exit_error("Cannot Process your request: Invalid TYPE specified", 'oauthprovider');