예제 #1
0
 public function postLogin(Request $request)
 {
     $this->validate($request, ['user_id' => 'required', 'password' => 'required']);
     $credentials = $request->only('user_id', 'password');
     $redirect = $this->redirectPath();
     $lock_new_users = true;
     $try = false;
     if (User::find($credentials['user_id'])) {
         // The user exists
         $try = true;
     } else {
         if ($lock_new_users) {
             return redirect('/locked');
         } else {
             if (($person = Person::find($credentials['user_id'])) && DataSource::check_login($credentials['user_id'], $credentials['password'])) {
                 // The ID exists and details are correct, but there isn't an account for it. Make one.
                 $user = User::create(['user_id' => $credentials['user_id'], 'name' => $person->name, 'password' => \Crypt::encrypt($credentials['password']), 'is_queued' => true]);
                 \Queue::push(new PrepareUser($user));
                 $redirect = '/setup';
                 $try = true;
             }
         }
     }
     if ($try && Auth::attempt($credentials, $request->has('remember'))) {
         return redirect()->intended($redirect);
     }
     return redirect($this->loginPath())->withInput($request->only('user_id', 'remember'))->withErrors(['user_id' => $this->getFailedLoginMessage()]);
 }
 function read_all()
 {
     if (NotificationsSource::mark_read_all()) {
         User::active()->mark_notification_read_all();
         return 'true';
     }
     return 'false';
 }
예제 #3
0
 function complete($id, $complete = true)
 {
     $complete = filter_var($complete, FILTER_VALIDATE_BOOLEAN);
     if (HomeworkSource::mark_complete($id, $complete)) {
         User::active()->mark_homework_complete($id, $complete);
         return 'true';
     }
     return 'false';
 }
예제 #4
0
 public static function mark_read_all()
 {
     $user = User::active();
     $sp = static::sharepoint($user);
     $items = [];
     foreach ($user->notifications()->wherePivot('is_read', '=', false) as $key => $notification) {
         $items[] = ['ID' => $notification->notification_id, 'ReadStatus' => 'Read'];
     }
     $raw_data = $sp->updateMultiple('Notifications', $items);
     return is_array($raw_data) && !isset($raw_data['warning']);
 }
예제 #5
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $this->log_wake();
     $errors = 0;
     foreach (User::all() as $index => $user) {
         $this->log_section('User ' . $user->user_id);
         try {
             NotificationsSource::update($user, $this);
             $this->log_section_end('Completed successfully.');
         } catch (\Exception $e) {
             $errors++;
             $this->comment('Exception');
             $this->error($e);
             $this->log_section_end('Failed.', true);
         }
     }
     $this->info("Completed with {$errors} errors.");
     if ($errors != 0) {
         $this->dispatch("Notifications");
     }
 }
예제 #6
0
use App\Next\Models\Homework;
use App\Next\Models\Lesson;
use App\Next\Models\User;
use App\Next\Data\HomeworkSource;
use App\Next\Layout\Colours;
use Carbon\Carbon;
$now = Carbon::now();
?>

<div class="option-flex">
	<div class="option">
		<div class="heading">Profile <span class="detail">Who you are</span></div>
		<div class="option-flex">
			<?php 
$person = User::active()->person;
?>
			<div class="profile-image" style="background-image: url({{ $person->profile_image_path() }});"></div>
			<div class="option-details">
				<div class="option-maintext">{{{ $person->name }}}</div>
				<?php 
if ($person->job_title == 'Student') {
    $str = 'Year ' . $person->year_level . ' Student';
} else {
    $str = $person->job_title;
}
?>
				<div class="option-subtext">{{{ $str }}}</div>
			</div>

			<a href="/auth/logout">
예제 #7
0
<div class="tile sportszone">
	<div class="tile-content">
		<div class="sports-item main">
			<div class="title">{{{ $match->team_name }}}</div>
			<div class="body">{{{ $match->date->format('g:i a \o\n \t\h\e jS \o\f F') }}}</div>
		</div>
		<div class="sports-item">
			<div class="subtitle">Match</div>
			<div class="body">Against {{{ $match->opponent_name }}} at {{{ $match->venue }}}</div>
		</div>
		<br>
		<div class="sports-item">
			<div class="subtitle">Players</div>
			<?php 
use App\Next\Models\User;
$active_id = User::active()->user_id;
?>
			<div class="people">
				@foreach ($match->team_members() as $person)
					<div class="person hover {{{ $person->person_id == $active_id ? 'person-self' : '' }}}" style="background-image: url({{ $person->profile_image_path() }});" data-name="{{{ $person->name }}}"></div>
				@endforeach
			</div>
		</div>
		<div class="sports-item">
			<div class="subtitle">Staff</div>
			<div class="people">
				@foreach ($match->staff_members() as $person)
					<div class="person hover {{{ $person->person_id == $active_id ? 'person-self' : '' }}}" style="background-image: url({{ $person->profile_image_path() }});" data-name="{{{ $person->name }}}"></div>
				@endforeach
			</div>
		</div>
예제 #8
0
<?php

use App\Next\Models\Homework;
use App\Next\Models\Lesson;
use App\Next\Models\User;
use App\Next\Data\HomeworkSource;
use App\Next\Layout\Colours;
use Carbon\Carbon;
$now = Carbon::now();
?>

<?php 
$feed = User::active()->timetable_feed();
?>

@if (count($feed) == 0)
	<div class="feed-empty">
		You don't have any lessons in the next few days.
	</div>
@else
	@foreach($feed as $group)
		<div class="heading">{{{ $group['heading'] }}}</div>
		@foreach($group['items'] as $tile)
			@include('timetable/tile', ['lesson' => $tile])
		@endforeach
	@endforeach
@endif


예제 #9
0
 function state()
 {
     return User::active()->is_queued;
 }
예제 #10
0
<?php

use App\Next\Models\Homework;
use App\Next\Models\Lesson;
use App\Next\Models\User;
use App\Next\Data\HomeworkSource;
use App\Next\Layout\Colours;
use Carbon\Carbon;
$now = Carbon::now();
?>

<?php 
$feed = User::active()->notifications_feed();
?>

@if (count($feed) == 0)
	<div class="feed-empty">
		You don't have any unread notifications.
	</div>
@else
	<div class="button-wrapper">
		<div class="button mark-all-read-button">Mark All As Read</div>
	</div>

	@foreach($feed as $tile)
		@include('notifications/tile', ['notification' => $tile])
	@endforeach
@endif
<script src="notifications.js"></script>
예제 #11
0
<?php

use App\Next\Models\Homework;
use App\Next\Models\Lesson;
use App\Next\Models\User;
use App\Next\Data\HomeworkSource;
use App\Next\Layout\Colours;
use Carbon\Carbon;
$now = Carbon::now();
?>

<?php 
$feed = User::active()->sportszone_feed();
?>


@if (count($feed) == 0)
	<div class="feed-empty">
		You don't have any recent or upcoming matches.
	</div>
@else
	@foreach($feed as $group)
		<div class="heading">{{{ $group['heading'] }}}</div>
		@foreach($group['items'] as $tile)
			@include('sportszone/tile', ['match' => $tile])
		@endforeach
	@endforeach
@endif

<script src="sportszone.js"></script>
예제 #12
0
 public static function keystone($path, $user = false)
 {
     $url = "https://keystone.stpeters.sa.edu.au/" . $path;
     $user = $user ? $user : User::active();
     return static::curl_authenticated(static::curl_init($url), $user->user_id, $user->password());
 }
예제 #13
0
<?php

use App\Next\Models\Homework;
use App\Next\Models\Lesson;
use App\Next\Models\User;
use App\Next\Data\HomeworkSource;
use App\Next\Layout\Colours;
use Carbon\Carbon;
$now = Carbon::now();
?>

<?php 
$feed = User::active()->pastoralcare_feed();
?>

@if (count($feed) == 0)
	<div class="feed-empty">
		You don't have any Pastoral Care items... somehow.
	</div>
@else
	@foreach($feed as $tile)
		@include('pastoralcare/tile', ['pastoralcare' => $tile])
	@endforeach
@endif
예제 #14
0
<?php

use App\Next\Next;
Next::hello();
use App\Next\Data\HomeworkSource;
use App\Next\Layout\Colours;
use App\Next\Data\Cache;
use App\Next\Models\Homework;
use App\Next\Models\User;
// var_dump(Cache::update_cache_date('HomeworkSource'));
DB::table('homework')->delete();
DB::table('users_homework')->delete();
var_dump(HomeworkSource::parsed_data());
// var_dump(Homework::all());
$user = User::find(60829);
foreach ($user->homework as $tree) {
    echo $tree->homework_id . ':' . $tree->pivot->complete . '<br>';
}