6 * Daniel Perez <danielperez.arg@gmail.com>
8 * This is an example to watch things in action. You can obviously modify things and logic as you see fit
11 require_once $gfwww.'include/pre.php';
12 require $gfconfig.'/plugins/oauthprovider/config.php';
16 // the header that displays for the project portion of the plugin
17 function oauthprovider_Project_Header($params) {
18 global $DOCUMENT_ROOT,$HTML,$id, $group_id;
20 $params['toptab']='oauthprovider';
25 site_project_header($params);
28 // the header that displays for the user portion of the plugin
29 function oauthprovider_User_Header($params) {
30 global $DOCUMENT_ROOT,$HTML,$user_id;
31 $params['toptab']='oauthprovider';
32 $params['user']=$user_id;
36 site_user_header($params);
39 if (!session_loggedin()) {
43 $user = session_get_user(); // get the session user
45 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
46 exit_error("Invalid User, Cannot Process your request for this user.", 'oauthprovider');
49 $type = getStringFromRequest('type');
50 $id = getStringFromRequest('id');
51 $name = getStringFromRequest('name');
52 $pluginname = 'oauthprovider';
55 exit_error("Cannot Process your request: No TYPE specified ",'oauthprovider'); // you can create items in Base.tab and customize this messages
56 } elseif ((!$name)&&(!$id)) {
57 exit_error("Cannot Process your request: No NAME or ID specified",'oauthprovider');
59 if ($type == 'group') {
61 $group = group_get_object_by_name($name);
62 $id = $group->getID();
64 else $group = group_get_object($id);
67 exit_error("Invalid Project", 'oauthprovider');
69 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
70 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
72 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group (optional)
73 if ( !$userperm->IsMember()) {
74 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
76 // other perms checks here...
77 oauthprovider_Project_Header(array('group'=>$group->getID(),'title'=>$pluginname . ' Project Plugin!','pagename'=>$pluginname,'sectionvals'=>array($group->getPublicName())));
78 // DO THE STUFF FOR THE PROJECT PART HERE
80 echo "We are in the Project oauthprovider plugin page for group (project) $id <br><br>";
82 } elseif ($type == 'user') {
83 if($name) $realuser = user_get_object_by_name($name);
84 else $realuser = user_get_object($id);
85 if (!($realuser) || !($realuser->usesPlugin($pluginname))) {
86 exit_error("First activate the User's $pluginname plugin through Account Manteinance Page", 'oauthprovider');
88 if ( (!$user) || ($user->getID() != $id)) { // if someone else tried to access the private oauthprovider part of this user
89 exit_error("Access Denied, You cannot access other user's personal $pluginname", 'oauthprovider');
91 oauthprovider_User_Header(array('title'=>'My '.$pluginname,'pagename'=>"$pluginname",'sectionvals'=>array($realuser->getUnixName())));
92 // DO THE STUFF FOR THE USER PART HERE
93 echo "We are in the User oauthprovider plugin page for user <br><br>";
95 } elseif ($type == 'admin') {
97 $group = group_get_object_by_name($name);
98 $id = $group->getID();
100 else $group = group_get_object($id);
103 exit_error("Invalid Project", 'oauthprovider');
105 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
106 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
108 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group
109 if ( !$userperm->IsMember()) {
110 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
112 //only project admin can access here
113 if ( $userperm->isAdmin() ) {
114 oauthprovider_Project_Header(array('group'=>$id, 'title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));
115 // DO THE STUFF FOR THE PROJECT ADMINISTRATION PART HERE
116 //echo "We are in the Project oauthprovider plugin page for <font color=\"#ff0000\">ADMINISTRATION</font> <br><br>";
119 exit_error("Access Denied, You are not a project Admin", 'oauthprovider');
123 exit_error("Cannot Process your request: Invalid TYPE specified", 'oauthprovider');