Skip to content

Commit

Permalink
Merge pull request #7 from londonhackspace/master
Browse files Browse the repository at this point in the history
changes on the lhs fork
  • Loading branch information
mentarus committed Nov 16, 2014
2 parents 59c1bd1 + 210607a commit ce3cdf3
Show file tree
Hide file tree
Showing 7 changed files with 217 additions and 97 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/application/logs/
/carddb.json
/carddb.json
/application/config/database.php
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Access Control Server
A RESTful server that works with the Access Control Nodes (https://github.com/solexious/ACNode)
Protocol loosely based on http://wiki.london.hackspace.org.uk/view/Project:Tool_Access_Control/Solexious_Proposal

Status: Done, but not yet fully tested
Status: Done, in production

Progress:

Expand All @@ -22,9 +22,15 @@ Roadmap

- [ ] show maintainers per tool: web gui to show maintainers per tool

Install:
========
* Requires nginx, php5, php5-mysql, php5-fpm, mysqld
* Copy acserver.nginx to /etc/nginx/sites-available/acserver
* Run ln -s /etc/nginx/sites-enabled/acserver /etc/nginx/sites-available/acserver
* Create MySQL database, and create tables with mysql -uuser -p tablename < blank.sql
* Move application/config/database.php.blank to application/config/database.php and modify with your mysql config
* Start php5-fpm and nginx

Usage:
======
* See the comments in application/controllers/api.php for usage examples.

For testing it's installed on babbage port 1234
6 changes: 0 additions & 6 deletions acserver-structure-drop-all-tables.sql

This file was deleted.

82 changes: 0 additions & 82 deletions acserver-test-data.sql

This file was deleted.

65 changes: 65 additions & 0 deletions acserver.nginx
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
server {

listen 1234;
server_name _;
root /var/www/acserver;
# rewrite_log on
error_log /var/log/nginx/acserver_error.log info;
index index.php index.html index.htm;
# enforce NO www
gzip off;

keepalive_timeout 0;
send_timeout 1;
if ($host ~* ^www\.(.*))
{
set $host_without_www $1;
rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
}

# canonicalize codeigniter url end points
# if your default controller is something other than "welcome" you should change the following
if ($request_uri ~* ^(/welcome(/index)?|/index(.php)?)/?$)
{
rewrite ^(.*)$ / permanent;
}

# removes trailing "index" from all controllers
if ($request_uri ~* index/?$)
{
rewrite ^/(.*)/index/?$ /$1 permanent;
}

# removes trailing slashes (prevents SEO duplicate content issues)
#if (!-d $request_filename)
#{
# rewrite ^/(.+)/$ /$1 permanent;
#}

# removes access to "system" folder, also allows a "System.php" controller
if ($request_uri ~* ^/system)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}

# unless the request is for a valid file (image, js, css, etc.), send to bootstrap
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}

# catch all
error_page 404 /index.php;

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_param SCRIPT_FILENAME /var/www/acserver$fastcgi_script_name;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@
$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'acserver';
$db['default']['password'] = 's3dvDRLX7ARKXXwV';
$db['default']['database'] = 'acserver';
$db['default']['hostname'] = '';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
Expand All @@ -66,4 +66,4 @@


/* End of file database.php */
/* Location: ./application/config/database.php */
/* Location: ./application/config/database.php */
136 changes: 136 additions & 0 deletions blank.mysql
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
-- MySQL dump 10.13 Distrib 5.1.73, for debian-linux-gnu (i486)
--
-- Host: localhost Database: acserver
-- ------------------------------------------------------
-- Server version 5.1.73-0ubuntu0.10.04.1

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `acnodes`
--

DROP TABLE IF EXISTS `acnodes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `acnodes` (
`acnode_id` int(11) NOT NULL,
`unique_identifier` varchar(30) NOT NULL,
`shared_secret` varchar(36) NOT NULL,
`tool_id` int(11) NOT NULL,
PRIMARY KEY (`acnode_id`),
UNIQUE KEY `tool_id` (`tool_id`),
UNIQUE KEY `acnodes` (`acnode_id`),
CONSTRAINT `FK_acnodes_tool_id` FOREIGN KEY (`tool_id`) REFERENCES `tools` (`tool_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `cards`
--

DROP TABLE IF EXISTS `cards`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `cards` (
`card_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`card_unique_identifier` varchar(15) NOT NULL,
`last_used` datetime DEFAULT NULL,
PRIMARY KEY (`card_id`),
UNIQUE KEY `cards` (`card_id`),
KEY `FK_cards_user_id` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=570759982 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `permissions`
--

DROP TABLE IF EXISTS `permissions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `permissions` (
`tool_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`last_used` datetime DEFAULT NULL,
`added_by_user_id` int(11) DEFAULT NULL,
`added_on` datetime NOT NULL,
`permission` int(1) NOT NULL,
KEY `FK_permissions_tool_id` (`tool_id`),
KEY `FK_permissions_user_id` (`user_id`),
KEY `FK_permissions_added_by_user_id` (`added_by_user_id`),
CONSTRAINT `FK_permissions_tool_id` FOREIGN KEY (`tool_id`) REFERENCES `tools` (`tool_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `tools`
--

DROP TABLE IF EXISTS `tools`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tools` (
`tool_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`status` int(1) NOT NULL,
`status_message` varchar(120) DEFAULT NULL,
PRIMARY KEY (`tool_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `toolusage`
--

DROP TABLE IF EXISTS `toolusage`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `toolusage` (
`tool_id` int(11) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`card_unique_identifier` varchar(15) DEFAULT NULL,
`logged_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`logged_event` varchar(25) NOT NULL,
`time` int(11) NOT NULL DEFAULT '0',
KEY `FK_toolusage_tool_id` (`tool_id`),
KEY `FK_toolusage_user_id` (`user_id`),
CONSTRAINT `FK_toolusage_tool_id` FOREIGN KEY (`tool_id`) REFERENCES `tools` (`tool_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `users`
--

DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`nick` varchar(50) NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `users` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5741 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

0 comments on commit ce3cdf3

Please sign in to comment.