|
@@ -790,12 +790,13 @@ function api_check_password($password)
|
|
|
* in the wrong context.
|
|
|
* This function is to be used in conjunction with the api_set_anonymous()
|
|
|
* function to simulate the user existence in case of an anonymous visit.
|
|
|
+ * @param bool database check switch - passed to api_is_anonymous()
|
|
|
* @return bool true if succesfully unregistered, false if not anonymous.
|
|
|
*/
|
|
|
-function api_clear_anonymous()
|
|
|
+function api_clear_anonymous($db_check=false)
|
|
|
{
|
|
|
global $_user;
|
|
|
- if(api_is_anonymous($_user['user_id']))
|
|
|
+ if(api_is_anonymous($_user['user_id'],$db_check))
|
|
|
{
|
|
|
unset($_user['user_id']);
|
|
|
api_session_unregister('_uid');
|
|
@@ -914,6 +915,7 @@ function api_set_anonymous()
|
|
|
{
|
|
|
api_session_unregister('_user');
|
|
|
$_user['user_id'] = $user_id;
|
|
|
+ $_user['is_anonymous'] = true;
|
|
|
api_session_register('_user');
|
|
|
return true;
|
|
|
}
|
|
@@ -1421,21 +1423,31 @@ function api_is_allowed($tool, $action, $task_id = 0)
|
|
|
/**
|
|
|
* Tells whether this user is an anonymous user
|
|
|
* @param int User ID (optional, will take session ID if not provided)
|
|
|
+ * @param bool Whether to check in the database (true) or simply in the session (false) to see if the current user is the anonymous user
|
|
|
* @return bool true if this user is anonymous, false otherwise
|
|
|
*/
|
|
|
-function api_is_anonymous($user_id=null)
|
|
|
+function api_is_anonymous($user_id=null,$db_check=false)
|
|
|
{
|
|
|
if(!isset($user_id))
|
|
|
{
|
|
|
$user_id = api_get_user_id();
|
|
|
}
|
|
|
- $info = api_get_user_info($user_id);
|
|
|
- if($info['status'] == 6)
|
|
|
+ if($db_check)
|
|
|
{
|
|
|
- error_log('Returning true from api_is_anonymous()',0);
|
|
|
- return true;
|
|
|
+ $info = api_get_user_info($user_id);
|
|
|
+ if($info['status'] == 6)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ global $_user;
|
|
|
+ if(isset($_user['is_anonymous']) and $_user['is_anonymous'] === true)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
- error_log('Returning false from api_is_anonymous()',0);
|
|
|
return false;
|
|
|
}
|
|
|
|