Main Page | Directories | File List | File Members

member.php File Reference

Go to the source code of this file.

Functions

 member_add ($user_id, $group_id, $status='')
 member_approve ($user_id, $group_id)
 member_remove ($user_id, $group_id)
 member_getpermissions ($group_id, $flags, $user_id=0)
 member_check ($user_id=0, $group_id, $flag=0, $strict=0)
 member_check_pending ($user_id=0, $group_id)
 member_check_private ($user_id=0, $group_id)
 member_create_tracker_flag ($artifact)
 member_check_is_pending ($user_id, $group_id)
 member_explain_roles ($role=5)


Function Documentation

member_add user_id,
group_id,
status = ''
 

Definition at line 25 of file member.php.

References $feedback, $result, $sql, db_query(), group_id, member_check(), print, and user_is_super_user().

00026 {
00027   
00028   if(!member_check($user_id,$group_id) || user_is_super_user())
00029     {
00030       $sql = "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES ($user_id, $group_id, '$status')";
00031 
00032       $result = db_query($sql);
00033       if ($result) 
00034         { 
00035           # add different history item if the addition is in pending status
00036           if ($status != "P")
00037             {  
00038               group_add_history('Added User',user_getname($user_id),$group_id);
00039             }
00040           else
00041             {
00042               group_add_history('User Requested Membership',user_getname($user_id),$group_id);
00043             }
00044         }
00045       return $result;
00046     }
00047   else
00048     { 
00049       fb(_("This user is already member of the group."));
00050       print $feedback;
00051       return 0; 
00052     }
00053 }

member_approve user_id,
group_id
 

Definition at line 56 of file member.php.

References $result, $sql, db_query(), and group_id.

00057 {
00058   $sql = "UPDATE user_group SET admin_flags='' WHERE user_id='$user_id' AND group_id='$group_id'";
00059   $result = db_query($sql);
00060   if ($result) 
00061     { group_add_history('Approved User',user_getname($user_id),$group_id); }
00062   return $result;
00063 }

member_check user_id = 0,
group_id,
flag = 0,
strict = 0
 

Definition at line 104 of file member.php.

References $result, $user_id, $value, db_numrows(), db_query(), group_id, member_getpermissions(), user_is_super_user(), and user_isloggedin().

Referenced by format_item_attached_files(), format_item_cc_list(), format_item_details(), member_add(), member_check_is_pending(), member_check_private(), menu_thispage(), my_incoming_assigned_item_list(), my_incoming_unassigned_item_list(), project_tabs(), show_all_users_remove_list(), trackers_data_get_technicians(), and trackers_data_handle_update().

00105 {
00106   # get the current user_id if missing
00107   if (!$user_id)
00108     {
00109       if (!user_isloggedin()) 
00110         {
00111           # not able to get a valid user id
00112           return false; 
00113         }
00114       else
00115         { 
00116           if (user_is_super_user())
00117             {
00118               # site admins always return true
00119               return true;
00120             }
00121           else 
00122             {
00123               # any other case, define the user_id needed later.
00124               $user_id = user_getid(); 
00125             }
00126         }
00127     }
00128   
00129   # determine whether someone is member of a project or not
00130   $result = db_query("SELECT user_id FROM user_group WHERE user_id='$user_id' AND group_id='$group_id' AND admin_flags<>'P'");
00131   
00132   if (!$result || db_numrows($result) < 1)
00133     {
00134       # not a member of the project
00135       return false;
00136     }
00137   elseif (!$flag)
00138     {
00139       # member of a project, not looking for specific permission
00140       return true;
00141     }
00142   else
00143     { 
00144       # when looking for permissions, first we look at the user permission,
00145       # if NULL at the group def permission, if NULL at the group type def
00146       # permission.
00147       $flag_tracker = substr(strtoupper($flag), 0, 1);
00148       $flag_level = substr(strtoupper($flag), 1, 2);
00149       if (!$flag_level)
00150         {
00151           # if flag_level does not exists, the level is the tracker flag
00152           # (like P or A for admin_flags)
00153           $flag_level = $flag_tracker;
00154           $flag_tracker = "admin";
00155         }
00156       
00157       # get the tracker
00158       switch ($flag_tracker)
00159         {
00160         case 'B': { $flag_tracker = "bugs"; break; }
00161         case 'P': { $flag_tracker = "patch"; break; }
00162         case 'T': { $flag_tracker = "task"; break; }
00163         case 'S': { $flag_tracker = "support"; break; }
00164         case 'N': { $flag_tracker = "news"; break; }
00165         case 'C': { $flag_tracker = "cookbook"; break; }
00166         }
00167   
00168       # get the value 
00169       $value = member_getpermissions($group_id, $flag_tracker, $user_id);
00170       if (!$value)
00171         { $value = group_getpermissions($group_id, $flag_tracker); }
00172       if (!$value)
00173         { $value = group_gettypepermissions($group_id, $flag_tracker); }
00174       if (!$value)
00175         { $value = "ERROR"; }
00176   
00177       # compare the value and what is asked
00178       if ($value == $flag_level)
00179         {
00180           # if the value is equal to the flag, we are obviously in a
00181           # "true" case.
00182           dbg("accept permission (A): role found value:$value, asked flag_level:$flag_level");
00183           return true;
00184         }
00185       elseif (!$strict && (2 == $value && (1 == $flag_level || 3 == $flag_level)))
00186         {
00187           # if the value is equal to 2 (manager and tech) if tech (1) or 
00188           # manager (3) is asked it is "true"
00189           dbg("accept permission (B): role found value:$value, asked flag_level:$flag_level");
00190           return true;
00191         }
00192       elseif (!$strict && (2 == $flag_level  && (1 == $value || 3 == $value)))
00193         {
00194           # if the value is equal to 3 (manager) or 1 (techn) if tech and 
00195           # manager (2) is asked it is "true"
00196           dbg("accept permission (C): role found value:$value, asked flag_level:$flag_level");
00197           return true;
00198         }
00199       else
00200         {
00201           # any other case, false.
00202           dbg("reject permission: role found value:$value, asked flag_level:$flag_level");
00203           return false;
00204         }
00205     }
00206 }

member_check_is_pending user_id,
group_id
 

Definition at line 288 of file member.php.

References group_id, and member_check().

00289 {
00290   return member_check($user_id, $group_id, 'P');
00291 }

member_check_pending user_id = 0,
group_id
 

Definition at line 209 of file member.php.

References $result, $user_id, db_numrows(), and db_query().

00210 {
00211   if (!$user_id) { $user_id = user_getid(); }
00212 
00213   $result = db_query("SELECT user_id FROM user_group WHERE user_id='$user_id' AND group_id='$group_id' AND admin_flags='P'");
00214 
00215   if (db_numrows($result)) 
00216     { return true; }
00217   else 
00218     { return false; }
00219 }

member_check_private user_id = 0,
group_id
 

Definition at line 225 of file member.php.

References $user_id, db_numrows(), db_query(), group_id, member_check(), user_is_super_user(), and user_isloggedin().

Referenced by menu_thispage().

00226 {
00227    # get the current user_id if missing
00228   if (!$user_id)
00229     {
00230       if (!user_isloggedin()) 
00231         {
00232           # not able to get a valid user id
00233           return false; 
00234         }
00235       else
00236         { 
00237           if (user_is_super_user())
00238             {
00239               # site admins always return true
00240               return true;
00241             }
00242           else 
00243             {
00244               # any other case, define the user_id needed later.
00245               $user_id = user_getid(); 
00246             }
00247         }
00248     }
00249   
00250   # check if its a project admin. If so, give access
00251   if (member_check($user_id, $group_id, 'A')) 
00252     { 
00253       return true;
00254     }
00255 
00256   # determine whether someone is member allowed to read private date
00257   # of a project or not
00258   if (db_numrows(db_query("SELECT user_id FROM user_group WHERE user_id='$user_id' AND group_id='$group_id' AND admin_flags<>'P' AND privacy_flags='1'")))
00259     {
00260       return true;
00261     }
00262 
00263   # if we end up here, it must be false
00264   return false;
00265 }

member_create_tracker_flag artifact  ) 
 

Definition at line 273 of file member.php.

References patch, and task.

Referenced by format_item_attached_files(), format_item_cc_list(), menu_thispage(), my_incoming_assigned_item_list(), my_incoming_unassigned_item_list(), trackers_data_get_technicians(), and trackers_data_handle_update().

00274 {
00275   switch ($artifact)
00276     {
00277     case 'bugs': { return "B"; }
00278     case 'patch': { return "P"; }
00279     case 'task': { return "T"; }
00280     case 'support': { return "S"; }
00281     case 'news': { return "N"; }
00282     case 'cookbook': { return "C"; }
00283     }
00284 }

member_explain_roles role = 5  ) 
 

Definition at line 294 of file member.php.

00295 {
00296   html_member_explain_roles ($role);
00297 }

member_getpermissions group_id,
flags,
user_id = 0
 

Definition at line 76 of file member.php.

References $sql, $user_id, db_query(), and db_result.

Referenced by member_check().

00077 {
00078   if (!$user_id)
00079     {
00080       $user_id = user_getid();
00081     }
00082   if ($flags)
00083     {
00084       $sql = "SELECT ".$flags."_flags FROM user_group WHERE group_id='$group_id' AND user_id='$user_id'";
00085       return db_result(db_query($sql), 0, $flags."_flags");
00086     }
00087 }

member_remove user_id,
group_id
 

Definition at line 65 of file member.php.

References $result, $sql, db_query(), and group_id.

00066 {
00067   $sql = "DELETE FROM user_group WHERE user_id='$user_id' AND group_id='$group_id'";
00068   $result = db_query($sql);
00069   if ($result) 
00070     { group_add_history('Removed User',user_getname($user_id),$group_id); }
00071   return $result;
00072 }


Generated on Sun Feb 26 13:23:05 2006 for Savane PHP Frontend Developer Reference by  doxygen 1.4.4