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';
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 function oauthprovider_Admin_Header() {
42 site_admin_header(array('title'=>_('OAuth')));
46 function oauthprovider_CheckGroup() {
47 if (!session_loggedin()) {
51 $user = session_get_user(); // get the session user
53 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
54 exit_error("Invalid User, Cannot Process your request for this user.", 'oauthprovider');
57 $name = getStringFromRequest('name');
58 if ((!$name)&&(!$id)) {
59 exit_error("Cannot Process your request: No NAME or ID specified",'oauthprovider');
61 $pluginname = 'oauthprovider';
64 $group = group_get_object_by_name($name);
65 $id = $group->getID();
67 else $group = group_get_object($id);
70 exit_error("Invalid Project", 'oauthprovider');
72 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
73 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
75 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group (optional)
76 if ( !$userperm->IsMember()) {
77 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
79 // other perms checks here...
80 oauthprovider_Project_Header(array('group'=>$group->getID(),'title'=>$pluginname . ' Project Plugin!','pagename'=>$pluginname,'sectionvals'=>array($group->getPublicName())));
81 // DO THE STUFF FOR THE PROJECT PART HERE
83 echo "We are in the Project oauthprovider plugin page for group (project) $id <br><br>";
86 function oauthprovider_CheckUser() {
87 if (!session_loggedin()) {
91 $user = session_get_user(); // get the session user
93 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
94 exit_error("Invalid User, Cannot Process your request for trequire_once $gfwww.'admin/admin_utils.php';
95 his user.", 'oauthprovider');
98 $name = getStringFromRequest('name');
99 //$id = getStringFromRequest('id');
100 $id = $user->getID();
102 if ((!$name)&&(!$id)) {
103 exit_error("Cannot Process your request: No NAME or ID specified",'oauthprovider');
105 $pluginname = 'oauthprovider';
107 if($name) $realuser = user_get_object_by_name($name);
108 else $realuser = user_get_object($id);
109 if (!($realuser) || !($realuser->usesPlugin($pluginname))) {
110 exit_error("First activate the User's $pluginname plugin through Account Manteinance Page", 'oauthprovider');
112 if ( (!$user) || ($user->getID() != $id)) { // if someone else tried to access the private oauthprovider part of this user
113 exit_error("Access Denied, You cannot access other user's personal $pluginname", 'oauthprovider');
115 oauthprovider_User_Header(array('title'=>'Personal page for OAuth','pagename'=>"$pluginname",'sectionvals'=>array($realuser->getUnixName())));
116 // DO THE STUFF FOR THE USER PART HERE
117 echo "We are in the User oauthprovider plugin page for user <br><br>";
120 function oauthprovider_CheckProjectAdmin() {
122 if (!session_loggedin()) {
123 exit_not_logged_in();
126 $user = session_get_user(); // get the session user
128 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
129 exit_error("Invalid User, Cannot Process your request for this user.", 'oauthprovider');
132 $name = getStringFromRequest('name');
133 $pluginname = 'oauthprovider';
136 $group = group_get_object_by_name($name);
137 $id = $group->getID();
139 else $group = group_get_object($id);
142 exit_error("Invalid Project", 'oauthprovider');
144 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
145 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
148 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group
149 if ( !$userperm->IsMember()) {
150 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
153 //only project admin can access here
154 if ( $userperm->isAdmin() ) {
155 oauthprovider_Project_Header(array('group'=>$id, 'title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));
156 // DO THE STUFF FOR THE PROJECT ADMINISTRATION PART HERE
157 //echo "We are in the Project oauthprovider plugin page for <font color=\"#ff0000\">ADMINISTRATION</font> <br><br>";
160 exit_error("Access Denied, You are not a project Admin", 'oauthprovider');
164 function oauthprovider_CheckSiteAdmin() {
166 if (!session_loggedin()) {
167 exit_not_logged_in();
170 $user = session_get_user(); // get the session user
172 if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
173 exit_error("Invalid User, Cannot Process your request for this user.", 'oauthprovider');
176 $name = getStringFromRequest('name');
177 $pluginname = 'oauthprovider';
180 $group = group_get_object_by_name($name);
181 $id = $group->getID();
183 else $group = group_get_object($id);
186 exit_error("Invalid Project", 'oauthprovider');
188 if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the oauthprovider plugin active
189 exit_error("Error, First activate the $pluginname plugin through the Project's Admin Interface", 'oauthprovider');
192 $userperm = $group->getPermission($user);//we'll check if the user belongs to the group
193 if ( !$userperm->IsMember()) {
194 exit_error("Access Denied, You are not a member of this project", 'oauthprovider');
197 //only project admin can access here
198 if ( $userperm->isAdmin() ) {
199 oauthprovider_Project_Header(array('group'=>$id, 'title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));
200 // DO THE STUFF FOR THE PROJECT ADMINISTRATION PART HERE
201 //echo "We are in the Project oauthprovider plugin page for <font color=\"#ff0000\">ADMINISTRATION</font> <br><br>";
204 exit_error("Access Denied, You are not a project Admin", 'oauthprovider');
207 if(! forge_check_global_perm ('forge_admin')) {
208 exit_error("Access Denied, You are not a site Admin", 'oauthprovider');
211 oauthprovider_Admin_Header();