Skip to content
Snippets Groups Projects

Allow user data model to be configurable in the accounts API

Merged Tim Ackroyd requested to merge feature/accounts_api_configurable_userdata into versions/0.15.0
Compare and
+ 23
7
Preferences
Compare changes
@@ -43,6 +43,8 @@ class Accounts extends DF_REST_Controller
'groups_put' => array('role' => ZON_ROLE_ADMIN, 'level' => 6, 'limit' => 10),
);
private $userdata_model;
/**
* Set access for logged in people with the 'editor' role.
*
@@ -65,16 +67,30 @@ class Accounts extends DF_REST_Controller
// Run the parent constructor.
parent::__construct();
// Load config
$this->config->load('accounts', TRUE);
// Define userdata model to userdata
$this->userdata_model = $this->config->item('userdata_model_name', 'accounts');
$userdata_model_path = $this->config->item('userdata_model_path', 'accounts');
// Default model name if not provided
if (empty($this->userdata_model))
{
$this->userdata_model = 'bitauth_userdata_model';
}
// Load resources.
$this->load->model('database/bitauth_users_model');
$this->load->model('database/bitauth_userdata_model');
if (!empty($userdata_model_path))
{
$this->load->model($userdata_model_path);
}
$this->load->model('database/bitauth_groups_model');
$this->load->model('database/bitauth_access_model');
$this->load->model('database/bitauth_assoc_model');
$this->load->library('form_validation');
// Load config
$this->config->load('accounts', TRUE);
}
/**
@@ -199,13 +215,13 @@ class Accounts extends DF_REST_Controller
// Logged in user is allowed to access themselves.
else if( $this->bitauth->logged_in())
{
$this->bitauth_userdata_model->where('user_id', $this->session->userdata('ba_user_id'));
$this->{$this->userdata_model}->where('user_id', $this->session->userdata('ba_user_id'));
}
// API Key assigned to specific user account is allowed to access themselves.
else if( ! empty($this->rest->user_id))
{
$this->bitauth_userdata_model->where('user_id', $this->rest->user_id);
$this->{$this->userdata_model}->where('user_id', $this->rest->user_id);
}
// Just to be safe...
@@ -223,17 +239,17 @@ class Accounts extends DF_REST_Controller
if ($this->get('id'))
{
// Get the articles.
$data = array($this->bitauth_userdata_model->where('id', $this->get('id'))->get_details(null,1));
$data = array($this->{$this->userdata_model}->where('id', $this->get('id'))->get_details(null,1));
}
else
{
// Set the where for both tables.
$this->bitauth_userdata_model->api_where($where_userdata);
$this->{$this->userdata_model}->api_where($where_userdata);
$this->bitauth_users_model->api_where($where_users);
// Get all records.
$data = $this->bitauth_userdata_model->get_details($order_by, $limit, $offset);
$data = $this->{$this->userdata_model}->get_details($order_by, $limit, $offset);
}
// Check for empty result set.