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';
15 require_once $gfwww.'admin/admin_utils.php';
17 $pluginname = 'oauthprovider';
19 $type = getStringFromRequest('type');
20 $name = getStringFromRequest('name');
21 $id = getStringFromRequest('id');
22 if ($name) $type_param = array('name', $name);
23 elseif ($id) $type_param = array('id', $id);
25 // the header that displays for the project portion of the plugin
26 function oauthprovider_Project_Header($params) {
27 global $DOCUMENT_ROOT,$HTML,$id, $group_id;
28 $params['toptab']='oauthprovider';
30 site_project_header($params);
33 // the header that displays for the user portion of the plugin
34 function oauthprovider_User_Header($params) {
35 global $DOCUMENT_ROOT,$HTML,$user_id;
36 $params['toptab']='oauthprovider';
37 $params['user']=$user_id;
41 site_user_header($params);
44 function oauthprovider_Admin_Header() {
45 site_admin_header(array('title'=>_('OAuth')));
49 function oauthprovider_CheckGroup() {
50 if (!session_loggedin()) {
54 $user = session_get_user(); // get the session user
55 global $pluginname, $name, $id;
57 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
58 exit_error("Invalid User, Cannot Process your request for this user.", 'oauthprovider');
61 if ((!$name)&&(!$id)) {
62 exit_error("Cannot Process your request: No NAME or ID specified",'oauthprovider');
66 $group = group_get_object_by_name($name);
67 $id = $group->getID();
69 else if($id) $group = group_get_object($id);
73 exit_error("Invalid Project", 'oauthprovider');
75 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
76 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
78 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group (optional)
79 if ( !$userperm->IsMember()) {
80 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
83 oauthprovider_Project_Header(array('group'=>$group->getID(),'title'=>_('OAuth Provider'),'pagename'=>$pluginname,'sectionvals'=>array($group->getPublicName())));
85 //echo "We are in the Project oauthprovider plugin page for group (project) $id <br><br>";
88 function oauthprovider_CheckUser() {
89 if (!session_loggedin()) {
95 $user = session_get_user(); // get the session user
97 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
98 exit_error("Invalid User, Cannot Process your request for this user.", $pluginname);
101 $id = $user->getID();
104 exit_error("Cannot Process your request: Invalid User", $pluginname);
107 $realuser = user_get_object($id);
108 if (!($realuser) || !($realuser->usesPlugin($pluginname))) {
109 exit_error("First activate the User's $pluginname plugin through Account Maintenance Page", 'oauthprovider');
112 oauthprovider_User_Header(array('title'=>'Personal page for OAuth','pagename'=>"$pluginname",'sectionvals'=>array($realuser->getUnixName())));
113 // DO THE STUFF FOR THE USER PART HERE
114 //echo "We are in the User oauthprovider plugin page for user <br><br>";
118 * checks whether the user is a forge admin or an admin of the corresponding project
120 function oauthprovider_CheckAdmin() {
122 if (!session_loggedin()) {
123 exit_not_logged_in();
126 $user = session_get_user(); // get the session user
127 global $pluginname, $name, $id;
129 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
130 exit_error("Invalid User, Cannot Process your request for this user.", 'oauthprovider');
134 $group = group_get_object_by_name($name);
135 $id = $group->getID();
137 else if($id) $group = group_get_object($id);
140 exit_error("Invalid Project", $pluginname);
142 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
143 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", $pluginname);
146 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group
147 if ( !$userperm->IsMember()) {
148 exit_error("Access Denied, You are not a member of this project", $pluginname);
151 //only project admin can access here
152 if ($userperm->isAdmin() || forge_check_global_perm ('forge_admin')) {
153 if($userperm->isAdmin()) {
154 oauthprovider_Project_Header(array('group'=>$id, 'title'=>_('OAuth Provider'), 'pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));
156 oauthprovider_Admin_Header();
160 else if(! forge_check_global_perm ('forge_admin')) {
161 //exit_error("Access Denied, You are not a forge Admin", 'oauthprovider');
165 //exit_error("Access Denied, You are not a project Admin", 'oauthprovider');
171 * exits with error if user is ot a forge or project admin
173 function oauthprovider_CheckAdminExit() {
174 switch(oauthprovider_CheckAdmin()) {
175 case 1: exit_error("Access Denied, You are not a forge Admin", 'oauthprovider');
177 case 2: exit_error("Access Denied, You are not a project Admin", 'oauthprovider');
183 * checks whether the user is a forge admin
185 function oauthprovider_CheckForgeAdmin() {
187 if(! forge_check_global_perm ('forge_admin')) {
191 oauthprovider_Admin_Header();
196 * checks whether the user is a forge admin and exits
198 function oauthprovider_CheckForgeAdminExit() {
200 if(! forge_check_global_perm ('forge_admin')) {
201 exit_error("Access Denied, You are not a forge Admin", 'oauthprovider');
204 oauthprovider_Admin_Header();