Example #1
0
 public function in($name)
 {
     $json = App::param($name);
     if (is_array($json)) {
         $objects = [];
         foreach ($json as $jsonItem) {
             $objects[] = $this->serializer->unserialize($jsonItem);
         }
         return $objects;
     }
     $object = $this->serializer->unserialize($json);
     return $object;
 }
Example #2
0
<?php

use Enpowi\App;
use Enpowi\Modules\DataIn;
use Enpowi\Types;
use Enpowi\Modules\Module;
Module::is();
$page = Types::Pages_Page((new DataIn())->in('page'));
$page->replace(App::param('content'));
echo 1;
Example #3
0
use Enpowi\App;
use Enpowi\Users\User;
use Enpowi\Modules\Module;
use RedBeanPHP\R;
Module::is();
switch (App::param('action')) {
    case 'delete':
        foreach (App::param('emails') as $email) {
            (new User($email))->remove();
        }
        echo 1;
        break;
    case 'impersonate':
        $user = new User(App::param('impersonateUser'));
        echo App::get()->authentication->impersonate($user) ? 1 : -1;
        break;
    case 'impersonateAnonymous':
        App::get()->authentication->impersonateAnonymous();
        echo 1;
        break;
    case 'find':
        $beans = R::findAll('user', 'email like :like limit 5', ['like' => '%' . App::param('query') . '%']);
        $users = [];
        foreach ($beans as $bean) {
            $users[] = $bean->email;
        }
        echo json_encode($users);
        break;
    default:
        echo 0;
}
Example #4
0
use Enpowi\Users\Group;
use Enpowi\Modules\DataOut;
use Enpowi\Modules\Module;
Module::is();
$app = App::get();
$auth = $app->authentication;
$page = App::paramIs('page') ? App::paramInt('page') : 1;
$users = null;
if (App::paramIs('email')) {
    $users = [User::getByEmail(App::param('email'))];
    $pages = 0;
} else {
    $users = User::users($page);
    $pages = User::pages();
}
(new DataOut())->add('email', App::param('email'))->add('pages', $pages)->add('page', $page)->add('users', $users)->add('availableGroups', Group::groups())->add('impersonateUser', $auth->isImpersonate() ? $auth->getUser() : [])->add('action', '')->bind();
?>
<form
	v-module
	action="users/listService"
	v-bind:data-done="page ? 'users/list?page=' + page : 'users/list'"
	class="container">
	<h3><span v-t>Users</span>
		<a v-title="New User" href="#/users/new"><span class="glyphicon glyphicon-plus-sign"></span></a></h3>
	<input
		name="q"
		v-placeholder="find user"
		v-find="{
			find: 'users/listService?action=find&q=',
			url: 'users/list?email='
		}"
Example #5
0
<?php

use Enpowi\App;
use Enpowi\Modules\DataIn;
use Enpowi\Types;
use Enpowi\Modules\Module;
Module::is();
$post = Types::Blog_Post((new DataIn())->in('post'));
$post->bean();
$user = App::user();
if ($user->hasPerm('*', '*') || $post->user()->email === $user->email) {
    $post->replace(App::param('content'));
    echo 1;
} else {
    echo -1;
}
Example #6
0
<?php

use Enpowi\Users\User;
use Enpowi\App;
use Enpowi\Modules\Module;
Module::is();
$response = [];
$user = User::getByEmailAndPassword(App::param('email'), App::param('password'));
if ($user === null) {
    $response['paramResponse'] = ['email' => 'Invalid email or password'];
    $response['id'] = -1;
} else {
    $login = $user->login();
    $response['id'] = $user->id;
    if (App::paramIs('remember')) {
        App::get()->authentication->rememberUserId();
    } else {
        App::get()->authentication->forgetUserId();
    }
}
echo json_encode($response);
Example #7
0
<?php

require_once 'setup/run.php';
use Enpowi\App;
use Enpowi\Modules\Module;
$moduleName = App::param('module') ?: App::param('m');
$componentName = App::param('component') ?: App::param('c');
$path = dirname(__FILE__);
$component = App::loadComponent($path, $moduleName, $componentName);
if ($component !== null && !empty($component->file)) {
    if ($component->isActive()) {
        Module::run();
        $component->runInit();
        require_once $component->file;
        $paramResponse = Module::getParamResponse();
        if ($paramResponse !== null) {
            echo json_encode(['paramResponse' => $paramResponse]);
        } else {
            $successResponse = Module::getSuccessResponse();
            if ($successResponse !== null) {
                echo json_encode(['successResponse' => $successResponse]);
            }
        }
    } else {
        require_once $component->file;
    }
} else {
    if (!defined('testing')) {
        echo -1;
    }
}
Example #8
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
Module::is();
echo ETM\Record::checkIn(App::param('number')) === null ? -1 : 1;
Example #9
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use Enpowi\Modules\DataOut;
Module::is();
$data = (new DataOut())->add('publisher', (new \ETM\Publisher(App::param('name')))->bindRecords())->out();
?>
<div
    data="<?php 
echo $data;
?>
"
    class="container">
  <h3><span v-t>Territory History for: </span>{{ publisher.name }}</h3>
  <table class="table wide">
    <thead>
    <tr>
      <th v-t>Territory</th>
      <th v-t>Out</th>
      <th v-t>In</th>
    </tr>
    </thead>
    <tbody>
    <tr v-repeat="record : publisher.records">
      <td>
        <a href="#/territory/view?number={{ record.number }}">{{ record.number }}</a>
      </td>
      <td>{{ dateFormattedShort(record.out) }}</td>
      <td>{{ record.in ? dateFormattedShort(record.in) : '' }}</td>
    </tr>
Example #10
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
Module::is();
$publishers = ETM\Publisher::searchByName(App::param('query'));
$names = [];
foreach ($publishers as $publisher) {
    $names[] = $publisher->name;
}
echo json_encode($names);
Example #11
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use Enpowi\Modules\DataOut;
use ETM\Publisher;
Module::is();
$data = (new DataOut())->add('publisher', new Publisher(App::param('name')))->out();
?>
<div
    data="<?php 
echo $data;
?>
"
    class="container">
  <h3><span v-t>Publisher: </span> {{ publisher.name }}</h3>
  <table class="table">
    <tr v-show="publisher.name">
      <th v-t>Name</th><td>{{ publisher.name }}</td>
    </tr>
    <tr v-show="publisher.email">
      <th v-t>Email</th><td>{{ publisher.email }}</td>
    </tr>
    <tr v-show="publisher.phone">
      <th v-t>Phone</th><td>{{ publisher.phone }}</td>
    </tr>
    <tr v-show="publisher.address1">
      <th v-t>Address 1</th><td>{{ publisher.adddress1 }}</td>
    </tr>
    <tr v-show="publisher.adddress2">
      <th v-t>Address 2</th><td>{{ publisher.adddress2 }}</td>
Example #12
0
<?php

use Enpowi\App;
use Enpowi\Users\Group;
use Enpowi\Users\User;
use Enpowi\Modules\DataOut;
use Enpowi\Modules\Module;
Module::is();
$data = (new DataOut())->add('user', $user = new User(App::param('email')))->add('groups', Group::editableGroups())->out();
?>
<form
	listen
	v-module
    data="<?php 
echo $data;
?>
"
	action="group/ofUserService"
	class="container">

	<h3>
		<span v-t>Groups for: </span>
		{{ user.email }}
	</h3>

	<input
		name="user"
		type="hidden"
		value="{{ stringify( user ) }}">

	<div v-repeat=" group : groups ">
Example #13
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use Enpowi\Users\User;
use Enpowi\Mail;
Module::is();
$email = App::param('email');
$user = User::getByEmail($email);
$password = $user->resetPassword();
$mailed = (new Mail())->setArgs(['email' => $user->email, 'password' => $password])->send(function (PHPMailer $mail) use($user) {
    $mail->addAddress($user->email);
    $mail->Subject = App::$config->siteName . ' Registration';
});
Example #14
0
<?php

use Enpowi\App;
use Enpowi\Users\Group;
use Enpowi\Modules\Module;
Module::is();
$groupName = App::param('groupName');
$reply = [];
$stop = false;
if (!Group::isValidGroupName($groupName)) {
    $reply['groupName'] = 'Invalid';
}
if ($stop) {
    echo json_encode(['paramResponse' => $reply, 'id' => -1]);
    die;
}
$id = Group::create($groupName);
echo json_encode(['id' => $id]);
Example #15
0
<?php

use Enpowi\App;
use Enpowi\Users\User;
use Enpowi\Forms\Utilities;
use Enpowi\Modules\Module;
Module::is();
$email = App::param('email');
$password = App::param('password');
$repeatPassword = App::param('repeatPassword');
$captcha = App::param('captcha');
$reply = [];
$stop = false;
if (!User::isEmailValid($email)) {
    $reply['email'] = 'Invalid';
    $stop = true;
}
if (!User::isUnique($email)) {
    $reply['email'] = 'Already taken';
    $stop = true;
}
if (!$password === $repeatPassword) {
    $reply['password'] = '******';
    $reply['repeatPassword'] = '******';
    $stop = true;
} else {
    if (!User::isValidPassword($password)) {
        $reply['password'] = '******';
        $reply['repeatPassword'] = '******';
        $stop = true;
    }
Example #16
0
<?php

use Enpowi\App;
use Enpowi\Mail;
use Enpowi\Modules\DataOut;
use Enpowi\Modules\Module;
Module::is();
$user = App::$app->user();
$key = App::param('key');
$mailed = false;
$isValid = $user->isValid();
$justValidated = false;
if ($isValid === false) {
    if (empty($key)) {
        $mailed = (new Mail())->setArgs(['key' => $user->validationKey(), 'email' => $user->email])->send(function (PHPMailer $mail) use($user) {
            $mail->addAddress($user->email);
            $mail->Subject = App::$config->siteName . ' Registration';
        });
    } else {
        if ($user->canValidate() && $user->validationKey() === $key) {
            $user->setValid(true);
            $isValid = true;
        }
    }
}
(new DataOut())->add('isValid', $isValid)->add('justValidated', $justValidated)->add('mailed', $mailed)->bind();
?>
<div class="container">
	<div v-show="!isValid && mailed">
		<h5 v-t>Confirmation On it's way!</h5>
		<span v-t>We cannot wait to have you on board!</span>
Example #17
0
<?php

use Enpowi\App;
use Enpowi\Users\User;
use Enpowi\Modules\Module;
Module::is();
$user = User::fromId(App::param('id'));
require path . '/modules/user/view.php';
Example #18
0
<?php

use Enpowi\App;
use Enpowi\Users\Group;
use Enpowi\Modules\Module;
Module::is();
switch (App::param('action')) {
    case 'delete':
        foreach (App::param('groupNames') as $groupName) {
            (new Group($groupName))->removePerms()->remove();
        }
}
echo 1;
Example #19
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use ETM\Publisher;
Module::is();
if (App::param('action') === 'merge') {
    $publisher = App::param('publisher');
    $publishers = App::params('publishers');
    if (Publisher::merge($publisher, $publishers) > 0) {
        echo 1;
    } else {
        echo 0;
    }
}
Example #20
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use Enpowi\Modules\DataOut;
use ETM\Territory;
Module::is();
$data = (new DataOut())->add('territory', (new Territory(App::param('number')))->bindGeoJson())->out();
?>
<form
    v-module
    action="territory/edit_service"
    data-done="territory?number={{ territory.number }}"
    class="create container"
    data="<?php 
echo $data;
?>
">
  <style>
    .create #map {
      width: 100%;
      min-height: 500px;
    }
  </style>
  <table>
    <tr>
      <th><h3 v-t>Edit Territory</h3></th>
      <td> : </td>
      <td>
        <input v-placeholder="Number" v-model="territory.number">
        <input v-placeholder="Locality" v-model="territory.locality">
Example #21
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use Enpowi\Modules\DataOut;
Module::is();
$data = (new DataOut())->add('cardScale', 100)->add('territory', (new \ETM\Territory(App::param('number')))->bindGeoJson())->add('controlsVisible', false)->out();
?>
<div class="container" data="<?php 
echo $data;
?>
">
  <title>Territory {{ territory.number }}</title>
  <style>
    #card-container {
      margin-left: auto;
      margin-right: auto;
      position: relative;
      width: {{ 1000 * (cardScale / 100)}}px;
    }
    #card {
      width: {{ 1000 * (cardScale / 100) }}px;
    }
    #map {
      height: {{ 600 * (cardScale / 100) }}px;
      width: {{ 1000 * (cardScale / 100) }}px;
    }
    #map-mini {
      height: {{ 375 * (cardScale / 100) }}px;
    }
    #card-label {
Example #22
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use Enpowi\Modules\DataOut;
Module::is();
//TODO: make a listener
$data = (new DataOut())->add('territory', (new \ETM\Territory(App::param('number')))->bindGeoJson())->add('history', \ETM\Record::history(App::param('number')))->add('action', 0)->add('publisherName', '')->add('showPublisherLookup', false)->out();
?>
<div
    class="container center"
    data="<?php 
echo $data;
?>
">
  <title>Territory {{ territory.number }}</title>
  <style>
    #map {
      min-height: 400px;
    }
    table.history {
      width: 50%;
      margin-left: auto;
      margin-right: auto;
    }
    .glyph-btn {
      margin-left: 30px;
    }
    .glyph-btn img {
      width: 50px;
    }
Example #23
0
<?php

use Enpowi\Modules\DataOut;
use Enpowi\App;
use Enpowi\Pages\Page;
use Enpowi\Modules\Module;
Module::is();
$name = App::param('name');
$data = (new DataOut())->add('name', $name)->add('rendered', (new Page($name))->render())->out();
?>
<div
	v-module
    data="<?php 
echo $data;
?>
"
	class="container">

	<h3>{{ name }}

        <a
            v-title="History"
            href="#/page/history?name={{ name }}"
            v-show=" hasPerm('page', 'history') "
            class="pull-right button"><span class="glyphicon glyphicon-backward"></span></a>

        <a
            v-title="Edit"
            href="#/page/edit?name={{ name }}"
            v-show=" hasPerm('page', 'edit') "
            class="pull-right button"><span class="glyphicon glyphicon-edit"></span></a>
Example #24
0
<?php

use ETM;
use Enpowi\App;
use Enpowi\Modules\Module;
Module::is();
$number = App::param('number');
$publisher = ETM\Publisher::fromName(App::param('publisherName'));
echo ETM\Record::checkOut($number, $publisher) === null ? -1 : 1;
Example #25
0
<?php

use Enpowi\App;
use Enpowi\Users\User;
use Enpowi\Modules\Module;
Module::is();
switch (App::param('action')) {
    case 'delete':
        foreach (App::param('emails') as $email) {
            (new User($email))->remove();
        }
        echo 1;
        break;
    case 'impersonate':
        $user = new User(App::param('impersonateUser'));
        echo App::get()->authentication->impersonate($user) ? 1 : -1;
        break;
    case 'impersonateAnonymous':
        App::get()->authentication->impersonateAnonymous();
        echo 1;
        break;
    default:
        echo 0;
}
Example #26
0
<?php

use Enpowi\App;
use Enpowi\Files\Image;
use Enpowi\Modules\Module;
Module::is();
$image = \Enpowi\Types::Files_Image(Image::getFromHash(App::param('image')));
if ($image !== null && $image->inShare()) {
    if (App::paramIs('thumb')) {
        echo $image->toThumbString();
    } else {
        echo $image->toString();
    }
}
Example #27
0
<?php

use Enpowi\App;
use Enpowi\Users\User;
use Enpowi\Modules\Module;
Module::is();
$user = App::user();
$password = App::param('password');
$passwordRepeat = App::param('passwordRepeat');
$update = App::paramBool('update');
$stop = false;
Module::paramRespond('password', '');
Module::paramRespond('passwordRepeat', '');
Module::paramRespond('passwordUpdated', '');
if (empty($password)) {
    $stop = true;
}
if (!$stop && $password !== $passwordRepeat) {
    Module::paramRespond('passwordRepeat', 'Passwords do not match');
    $stop = true;
}
if (!$stop && !User::isValidPassword($password)) {
    Module::paramRespond('password', 'Invalid');
    $stop = true;
}
if (!$stop) {
    if ($update) {
        if ($user->updatePassword($password)) {
            Module::paramRespond('passwordUpdated', 'Password updated');
        }
    }
Example #28
0
<?php

use Enpowi\Modules\DataOut;
use Enpowi\Pages\Page;
use Enpowi\App;
use Enpowi\Modules\Module;
Module::is();
$name = App::param('name');
$data = (new DataOut())->add('name', $name)->add('leftPage', Page::byId(App::param('left')))->add('rightPage', Page::byId(App::param('right')))->out();
?>
<div
	v-module
    data="<?php 
echo $data;
?>
"
	class="container">

	<h3><span v-t>Comparing: </span>{{ name }}</h3>

	<table class="table">
		<thead>
		<tr>
			<th class="center"><span v-t>Edited </span>{{ leftPage.created }}</th>
			<th class="center"><span v-t>Edited </span>{{ rightPage.created }}</th>
		</tr>
		</thead>
		<tbody>
		<tr>
			<td><pre>{{ leftPage.content }}</pre></td>
			<td><pre>{{ rightPage.content }}</pre></td>
Example #29
0
<?php

use Enpowi\App;
use Enpowi\Users\User;
use Enpowi\Modules\Module;
Module::is();
$email = App::param('email');
$password = App::param('password');
$reply = [];
$stop = false;
if (!User::isEmailValid($email)) {
    $reply['email'] = 'Invalid';
    $stop = true;
}
if (!User::isUnique($email)) {
    $reply['email'] = 'Already taken';
    $stop = true;
}
if (!User::isValidPassword($password)) {
    $reply['password'] = '******';
    $reply['repeatPassword'] = '******';
    $stop = true;
}
if ($stop) {
    echo json_encode(['paramResponse' => $reply, 'id' => -1]);
    die;
}
$user = User::create($email, $password);
echo json_encode(['id' => $user->id]);
Example #30
0
<?php

use Enpowi\App;
use Enpowi\Modules\Module;
use Enpowi\Files\Gallery;
Module::is();
$name = App::param('name');
$description = App::param('description');
if (!Gallery::isUnique($name)) {
    Module::paramRespond('name', 'Not unique');
} else {
    $id = Gallery::create($name, $description);
    Module::successRespond('g', $id);
}