Skip to content

Commit

Permalink
- Added management pages to manage languages (in the site tab)
Browse files Browse the repository at this point in the history
- Added user management to management page in case of Db authentication

git-svn-id: https://xerteonlinetoolkits.googlecode.com/svn/trunk@729 912cdd6b-5c7d-d5a7-a2ba-d0f0cdb91641
  • Loading branch information
torinfo committed Mar 23, 2013
1 parent 54452b6 commit 1e9c2d7
Show file tree
Hide file tree
Showing 32 changed files with 1,026 additions and 22 deletions.
11 changes: 6 additions & 5 deletions functions.php
Expand Up @@ -124,6 +124,7 @@ function _load_language_file($file_path)
function _include_javascript_file($file_path)
{

global $xerte_toolkits_site;
$languages = 'languages/';

if (isset($_GET['language']) && is_dir($languages . $_GET['language'])) {
Expand Down Expand Up @@ -158,9 +159,9 @@ function _include_javascript_file($file_path)
_debug($language);
_debug($real_file_path);
_debug($en_gb_file_path);
echo "<script type=\"text/javascript\" language=\"javascript\" src=\"" . $file_path . "\"></script>";
if (file_exists($en_gb_file_path)) {
echo "<script type=\"text/javascript\" language=\"javascript\" src=\"" . $en_gb_file_path . "\"></script>";
echo "<script type=\"text/javascript\" language=\"javascript\" src=\"" . $xerte_toolkits_site->site_url . $file_path . "\"></script>";
if (file_exists(dirname(__FILE__) . "/" . $en_gb_file_path)) {
echo "<script type=\"text/javascript\" language=\"javascript\" src=\"" . $xerte_toolkits_site->site_url . $en_gb_file_path . "\"></script>";
} else {
// stuff will break at this point.
//die("Where was $real_file_path?");
Expand All @@ -170,8 +171,8 @@ function _include_javascript_file($file_path)

if ($language != "en-GB")
{
if(file_exists($real_file_path)) {
echo "<script type=\"text/javascript\" language=\"javascript\" src=\"" . $real_file_path . "\"></script>";
if(file_exists(dirname(__FILE__) . "/" . $real_file_path)) {
echo "<script type=\"text/javascript\" language=\"javascript\" src=\"" . $xerte_toolkits_site->site_url . $real_file_path . "\"></script>";
}
else
{
Expand Down
2 changes: 2 additions & 0 deletions languages/en-GB/index.inc
Expand Up @@ -40,6 +40,8 @@ define("INDEX_FOLDER_PROMPT","What would you like to call your folder?");

define("INDEX_WORKSPACE_TITLE","My Projects");

define("INDEX_WORKSPACE","Workspace");

define("INDEX_CREATE","Create a new project");

define("INDEX_TEMPLATES","Here are the templates currently available.");
Expand Down
22 changes: 22 additions & 0 deletions languages/en-GB/library/Xerte/Authentication/Db.inc
@@ -0,0 +1,22 @@
<?php
/**
* Created by JetBrains PhpStorm.
* User: tom
* Date: 23-3-13
* Time: 10:26
* To change this template use File | Settings | File Templates.
*/

define("AUTH_DB_DELETEUSER", "Delete");
define("AUTH_DB_CHANGEPASSWD", "Change password");
define("AUTH_DB_USERNAME", "Login name");
define("AUTH_DB_FIRSTNAME", "First name");
define("AUTH_DB_SURNAME", "Last name");
define("AUTH_DB_PASSWORD", "Password");
define("AUTH_DB_ADDUSER", "Create user");
define("AUTH_DB_USEREXISTS", "User already exists");
define("AUTH_DB_USERADDFAILED", "Error when adding user to the Db, do you have write permissions for MySQL?");
define("AUTH_DB_USERDELFAILED", "Error when deleting user from the Db, do you have write permissions for MySQL?");
define("AUTH_DB_CHANGEPASSWORDFAILED", "Error when changing the user password in the Db, do you have write permissions for MySQL?");

?>
8 changes: 8 additions & 0 deletions languages/en-GB/library/Xerte/Authentication/Db.js
@@ -0,0 +1,8 @@
/**
* Created with JetBrains PhpStorm.
* User: tom
* Date: 23-3-13
* Time: 11:16
* To change this template use File | Settings | File Templates.
*/
var REMOVE_USER_PROMPT = "Are you sure you want to remove this user?";
18 changes: 18 additions & 0 deletions languages/en-GB/library/Xerte/Authentication/Db/adduser.inc
@@ -0,0 +1,18 @@
<?php
/**
* Created by JetBrains PhpStorm.
* User: tom
* Date: 23-3-13
* Time: 12:06
* To change this template use File | Settings | File Templates.
*/

define("AUTH_DB_ADDUSER_INVALIDUSERNAME", "Invalid username given.");
define("AUTH_DB_ADDUSER_INVALIDFIRSTNAME", "Invalid first name given.");
define("AUTH_DB_ADDUSER_INVALIDSURNAME", "Invalid last name given.");
define("AUTH_DB_ADDUSER_INVALIDPASSWORD", "Empty password is not allowed.");
define("AUTH_DB_ADDUSER_PASSWORDTOOSHORT", "Password needs to be at least 5 chars");
define("AUTH_DB_ADDUSER_FAILED", "Failed to add user:");
define("AUTH_DB_ADDUSER_SUCCEEDED", "User added successfully");

?>
16 changes: 16 additions & 0 deletions languages/en-GB/library/Xerte/Authentication/Db/changepassword.inc
@@ -0,0 +1,16 @@
<?php
/**
* Created by JetBrains PhpStorm.
* User: tom
* Date: 23-3-13
* Time: 13:34
* To change this template use File | Settings | File Templates.
*/

define("AUTH_DB_CHANGEPASSWORD_INVALIDUSERNAME", "Invalid username given.");
define("AUTH_DB_CHANGEPASSWORD_INVALIDPASSWORD", "Empty password is not allowed.");
define("AUTH_DB_CHANGEPASSWORD_PASSWORDTOOSHORT", "Password needs to be at least 5 chars");
define("AUTH_DB_CHANGEPASSWORD_FAILED", "Failed to change password:");
define("AUTH_DB_CHANGEPASSWORD_SUCCEEDED", "Password is changed successfully");

?>
14 changes: 14 additions & 0 deletions languages/en-GB/library/Xerte/Authentication/Db/deluser.inc
@@ -0,0 +1,14 @@
<?php
/**
* Created by JetBrains PhpStorm.
* User: tom
* Date: 23-3-13
* Time: 13:25
* To change this template use File | Settings | File Templates.
*/

define("AUTH_DB_DELUSER_INVALIDUSERNAME", "Invalid user name.");
define("AUTH_DB_DELUSER_FAILED", "Deletion has failed..");
define("AUTH_DB_DELUSER_SUCCEEDED", "User is successfully deleted.");

?>
15 changes: 15 additions & 0 deletions languages/en-GB/website_code/php/language/delete_language.inc
@@ -0,0 +1,15 @@
<?php
/**
* Created by JetBrains PhpStorm.
* User: tom
* Date: 22-3-13
* Time: 10:48
* To change this template use File | Settings | File Templates.
*/

define("DELETE_LANGUAGE_SUCCEEDED", "Language definition successfully deleted: ");
define("DELETE_LANGUAGE_FAILED", "Deletion of fanguage definition failed:\n");
define("DELETE_LANGUAGE_WRITABLE", " needs to be writeable. Cannot perform installation");
define("DELETE_LANGUAGE_INVALIDCODE", " No valid language code given!");
define("DELETE_LANGUAGE_UNABLE_TO_DELETE", " Unable to delete ");
?>
7 changes: 7 additions & 0 deletions languages/en-GB/website_code/php/language/import_language.inc
@@ -0,0 +1,7 @@
<?php

define("IMPORT_LANGUAGE_SUCCEEDED", "Language definition successfully installed: ");
define("IMPORT_LANGUAGE_FAILED", "installation of language definition failed:\n");
define("IMPORT_LANGUAGE_WRITABLE", " needs to be writeable. Cannot perform installation");
define("IMPORT_LANGUAGE_NOVALIDZIP", " No valid language definition found in the file!");
?>
Expand Up @@ -46,4 +46,10 @@

define("MANAGEMENT_LIBRARY_FAIL", "the feature is for administrators only");

define("MANAGEMENT_LIBRARY_ADD_LANGUAGE", "Add or update a language definition");
define("MANAGEMENT_LIBRARY_EXISTING_LANGUAGES", "Manage existing languages");
define("MANAGEMENT_LIBRARY_LANGUAGE_INSTALL", "Install language definition");
define("MANAGEMENT_LIBRARY_LANGUAGES", "Language settings");
define("MANAGEMENT_LIBRARY_LANGUAGES_EXPLAINED", "Upload and refresh the language definitions using the upload button below. New language definitions can be found in the download section of the Xerte Community website (http://www.xerte.org.uk). There are three different kinds of packages. You can use any of them here.");
define("MANAGEMENT_LIBRARY_LANGUAGES_UPDATED", "Language definitions are updated.");
?>
1 change: 0 additions & 1 deletion languages/en-GB/website_code/php/management/site.inc
Expand Up @@ -160,5 +160,4 @@ define("LTI_KEYS_ADD_SUBMIT","Add New LTI Key");
define("LTI_KEYS_EDIT_SUBMIT","Save LTI Key");
define("LTI_KEYS_DELETE_SUBMIT","Delete LTI Key");


?>
4 changes: 4 additions & 0 deletions languages/en-GB/website_code/php/management/users.inc
Expand Up @@ -20,5 +20,9 @@
define("USERS_KNOWN", "The user's surname is ");

define("USERS_USERNAME", "The user's username is");

define("USERS_MANAGE_AUTH", "Authorized users");

define("USERS_MANAGE_ACTIVE", "Active users with Learning Objects");

?>
4 changes: 3 additions & 1 deletion languages/en-GB/website_code/scripts/management.js
Expand Up @@ -4,4 +4,6 @@ var USER_CHANGED = "User successfully changed";

var MANAGEMENT_SHOW = "Show";

var MANAGEMENT_HIDE = "Hide";
var MANAGEMENT_HIDE = "Hide";

var MANAGEMENT_DELETE_LANGUAGE = "Are you sure you want to remove this language: ";
42 changes: 42 additions & 0 deletions library/Xerte/Authentication/Abstract.php
Expand Up @@ -72,4 +72,46 @@ abstract public function check();
public function needsLogin() {
return true;
}

/**
* canManageUser
*
* Change this to return true if the four AJAX functions getUserList(), addUser(), delUser() and changePassword() are implemented.
* Using these four functions the users can be fully managed in the management page
*/
public function canManageUser(&$jsscript)
{
$jsscript="";
return false;
}

/**
* getUserList
*
* Create a form that contains a list, or selection box with all users, and the capability to change password, delete user, and add a new user
* @param $changed, indicates whether this function is called after an update. It should mention that the list has been updated and displays $mesg below the form,
* see Db.php for an example
* @param $mesg, message to display if $changed is true
* @return string, contains the form code to manage users. It will be placed dynamically in the Users management page
*/
public function getUserList($changed, $mesg)
{
echo "";
}

public function addUser($username, $passwd, $firstname, $lastname)
{
$this->getUserList(true, "");
}

public function delUser($username)
{
$this->getUserList(true, "");
}

public function changePassword($username, $newpassword)
{
$this->getUserList(true, "");
}

}
80 changes: 80 additions & 0 deletions library/Xerte/Authentication/Db.js
@@ -0,0 +1,80 @@
/**
* Created with JetBrains PhpStorm.
* User: tom
* Date: 23-3-13
* Time: 10:56
* To change this template use File | Settings | File Templates.
*/


function authdb_ajax_send_prepare(url){

xmlHttp.open("post","library/Xerte/Authentication/Db/" + url,true);
xmlHttp.onreadystatechange=authdb_stateChanged;
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

}

/**
*
* Function folders properties state changed
* This function handles all of the responses from the ajax queries
* @version 1.0
* @author Patrick Lockley
*/

function authdb_stateChanged(){

if (xmlHttp.readyState==4){

if(xmlHttp.responseText!=""){

document.getElementById('manage_auth_users').innerHTML = xmlHttp.responseText;

}
}
}

function delete_authDb_user() {
if(setup_ajax()!=false){
var answer = confirm(REMOVE_USER_PROMPT);

if(answer){
var url="deluser.php";

authdb_ajax_send_prepare(url);

xmlHttp.send('username=' + encodeURIComponent(document.getElementById('authDb_list_user').value));
}

}
}

function changepassword_authDb_user() {
if(setup_ajax()!=false){

var url="changepassword.php";

authdb_ajax_send_prepare(url);

var passwd = document.getElementById('authDb_changepassword').value;
var encodedpasswd = encodeURIComponent(document.getElementById('authDb_changepassword').value);
xmlHttp.send('username=' + encodeURIComponent(document.getElementById('authDb_list_user').value) + '&password=' + encodeURIComponent(document.getElementById('authDb_changepassword').value));

}
}

function add_authDb_user() {
if(setup_ajax()!=false){

var url="adduser.php";

authdb_ajax_send_prepare(url);

xmlHttp.send('username=' + encodeURIComponent(document.getElementById('authDb_username').value) +
'&firstname=' + encodeURIComponent(document.getElementById('authDb_firstname').value) +
'&surname=' + encodeURIComponent(document.getElementById('authDb_surname').value) +
'&password=' + encodeURIComponent(document.getElementById('authDb_password').value));

}
}

0 comments on commit 1e9c2d7

Please sign in to comment.