Skip to content

Release 0.5.0-beta #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 81 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
4007917
initial commit - transfered repos
hakasapl Feb 17, 2021
505f0a5
added notice for deactivated account
hakasapl Feb 18, 2021
aaf3d1f
added changelog
hakasapl Feb 25, 2021
87c9174
Added version info
hakasapl Feb 25, 2021
0b94731
better css templates
hakasapl Feb 26, 2021
29b5c6b
updated account settings
hakasapl Mar 5, 2021
a960cbe
added support ticket php - no php yet
hakasapl Apr 6, 2021
9808922
added prefix to ssh generation
hakasapl Apr 6, 2021
b731982
remove panel index
hakasapl Apr 6, 2021
4bb05df
css global changes
hakasapl Apr 6, 2021
6f035ec
added getFullname() method to unityUser
hakasapl Apr 6, 2021
fc25f2c
updated navbar items
hakasapl Apr 6, 2021
67a8c18
fixed button width on account settings
hakasapl Apr 6, 2021
5d2decb
good communication with truenas api
hakasapl Jul 7, 2021
281f395
added storage class to autoload
hakasapl Jul 7, 2021
81f244e
working home directory creation
hakasapl Jul 16, 2021
47710b2
added truenas test
hakasapl Jul 16, 2021
635d2c0
finished ACL queries
hakasapl Jul 26, 2021
1f9afa8
fixed delete method for storage
hakasapl Jul 26, 2021
32d31bd
added populatehomedirectory method, untested
hakasapl Jul 26, 2021
24912d2
added skeleton readme
hakasapl Jul 26, 2021
1147489
merged populatehome
hakasapl Jul 26, 2021
dd1d54f
added scratch skeleton files
hakasapl Jul 31, 2021
59dfe3a
added populatescratchdirectory method
hakasapl Jul 31, 2021
548fe97
implemented storage class in user creation pipeline
hakasapl Jul 31, 2021
ae4a15b
updated changelog
hakasapl Jul 31, 2021
1322028
finished table expansion frontend
hakasapl Aug 3, 2021
631f69d
removed duplicate entries
hakasapl Aug 3, 2021
5a309fb
fixed key upload issues
hakasapl Aug 3, 2021
1ddafef
ajax file for getting group members
hakasapl Aug 3, 2021
9bc442c
added start of ldap schema definition for advanced group management
hakasapl Sep 2, 2021
8eafa76
started work on service stack framework
hakasapl Sep 2, 2021
abb86fa
added skeleton for storage drivers
hakasapl Sep 7, 2021
2c23670
created serviceStack class
hakasapl Sep 7, 2021
30487fa
moved to using OIDs for UMass (still needs children OIDs)
hakasapl Sep 7, 2021
6ee70a4
changes web uid to static
hakasapl Sep 7, 2021
0bada1b
whitespace
hakasapl Sep 7, 2021
d5efdd9
switch to service stack for init scripts
hakasapl Sep 20, 2021
0e2e65d
added notion of storage device flags
hakasapl Sep 21, 2021
1ae71d2
removed mass email integration on the site
hakasapl Sep 24, 2021
d848947
new signup radio buttons
hakasapl Oct 15, 2021
5fb54b9
added unityfs daemon
hakasapl Oct 16, 2021
5ebe1a5
changing location of skel
hakasapl Oct 16, 2021
97446b5
bug squashing
hakasapl Oct 16, 2021
b37cdbe
added unityfs service
hakasapl Oct 16, 2021
85a6954
unityfs to service stack
hakasapl Oct 16, 2021
e57c331
fixed typo in schema file
hakasapl Oct 16, 2021
fe2d164
moved github method to globals
hakasapl Oct 16, 2021
1ce5bc6
updated account page with new classes
hakasapl Oct 16, 2021
a7c1b8b
fixed mailer issues
hakasapl Oct 16, 2021
c54f3d9
updated pi mgmt
hakasapl Oct 16, 2021
45fa2c1
the start of the faq
hakasapl Oct 16, 2021
3207bbf
fixed longstanding bug with multipi not functioning properly
hakasapl Oct 16, 2021
cfff4ed
added custom user mapping support
hakasapl Oct 16, 2021
ca5c8d8
updated gitignore
hakasapl Oct 16, 2021
6ef2ccc
performance op
hakasapl Oct 16, 2021
8b6ff93
storage drivers replaced with python app
hakasapl Oct 16, 2021
9458f84
cleaning old files
hakasapl Oct 16, 2021
ad37482
message modal
hakasapl Oct 16, 2021
6fa5f05
updated 1 use scripts
hakasapl Oct 16, 2021
c633e25
added dynamic navbar
hakasapl Oct 16, 2021
7a1b890
fixed user state rename
hakasapl Oct 16, 2021
79b60c2
udpated pi page to reflect changes in classes
hakasapl Oct 16, 2021
b514a8a
check auth user for get group members
hakasapl Oct 16, 2021
3566e8b
added service file example
hakasapl Oct 16, 2021
4acfef1
added custom modals to panel pages
hakasapl Oct 16, 2021
394185c
fixed unity account to remove group correctly
hakasapl Oct 16, 2021
d8eab01
set timeout on untiyfs
hakasapl Oct 16, 2021
d1754f5
updated config example
hakasapl Oct 16, 2021
3369428
added timeout, reduced cpu usage
hakasapl Oct 16, 2021
79b800a
added test style page
hakasapl Oct 16, 2021
3ef33be
removed role option from new account page
hakasapl Oct 16, 2021
4b11d94
set reuseaddr for socket conn
hakasapl Oct 16, 2021
32131a1
global style cleanup
hakasapl Oct 16, 2021
d49fd5c
check for dups when updating ssh keys
hakasapl Oct 16, 2021
12f5d54
removed checkmark
hakasapl Oct 16, 2021
dac984d
groups styling
hakasapl Oct 16, 2021
ac05705
styling touches
hakasapl Oct 16, 2021
b224203
more touch ups
hakasapl Oct 16, 2021
d7d4e5a
removed old stuff not needed
hakasapl Oct 16, 2021
703c281
updated changelog
hakasapl Oct 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
resources/config.php
resources/libraries/composer/
resources/custom_user_mappings/*.csv
bin/*.service

.vscode/
31 changes: 29 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,29 @@
# unity-web-portal
Web portal for the Unity Cluster
# Unity Cluster Website #

### Installation ###
1. Prerequisites
1. OpenLDAP Server with Admin Credentials, correct schema
1. SQL Server, correct schema
1. Slurm commands accessible on this host, `www-data` (or whatever the web server user is) should be an operator in `sacctmgr`
1. SMTP Server
1. Some HTTP Authentication mechanism (such as Shibboleth SP)
1. Install required PHP Libraries:
1. Install composer `apt install composer`
1. Create directory and navigate to `resources/libraries/composer`
1. Install phpmailer: `composer require phpmailer/phpmailer`
1. Install phpseclib: `composer require phpseclib/phpseclib`
1. Install php-ldap `apt install php-ldap`
1. Setup config File `resources/config.php`, use the `resoures/config.php.example` as a reference
1. Apache Configs



#### Directory Structure ####
* `/webroot` - Public root of the website (http document root)
* `/resources` - Private directory containing php files not necessary to be public.

The unity/webroot directory should be the **only** publicly accessible location (DocumentRoot in htdocs). The resources directory contains many php scripts that are referenced absolutely in the config.

#### Server Setup ####
This website has a public and private interface. The private interface is authenticated using a shibboleth SP. The following files/directories must be behind a shibboleth SP (configured through apache).
* `/panel`
7 changes: 7 additions & 0 deletions bin/skel/home/.bash_logout
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# ~/.bash_logout: executed by bash(1) when login shell exits.

# when leaving the console clear the screen to increase privacy

if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
117 changes: 117 additions & 0 deletions bin/skel/home/.bashrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
27 changes: 27 additions & 0 deletions bin/skel/home/.profile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
5 changes: 5 additions & 0 deletions bin/skel/home/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Hello Unity User!

Welcome to the Unity cluster. If you're looking for documentation you can find that at https://unity.rc.umass.edu/docs. If you are looking for support please email hpc@umass.edu to reach our ticketing system, or fill out a form online at https://unity.rc.umass.edu/panel/contact.php.

Enjoy!
1 change: 1 addition & 0 deletions bin/skel/scratch/README
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This is your scratch home folder. FOLDERS AND FILES IN THIS DIRECTORY WILL AUTO DELETE AFTER 90 DAYS OF INACTIVITY. This folder is a much higher performance location. Cluster jobs should be run off of this location.
Loading