public function addSharedUser(User $user) { $bean = $this->bean(); if ($bean === null) { return $this; } $bean->sharedUserList[] = $user->bean(); return $this; }
public static function getByEmailAndPassword($email, $password) { $user = new User($email); $bean = $user->bean(); if ($bean !== null) { if (password_verify($password, $bean->password)) { return $user; } } return null; }
public function replace($content = '') { if (empty($this->name)) { throw new Exception('Blog post needs name before it can be saved'); } $bean = $this->_bean; if ($bean === null) { $this->_bean = $bean = R::dispense('blog'); } $bean->name = $this->name; $this->content = $bean->content = $content; $bean->edited = R::isoDateTime(); $bean->created = $this->created ?: R::isoDateTime(); $otherUserBean = App::user()->bean(); $bean->user = $this->_user !== null ? $this->_user->bean() : $otherUserBean; $this->contributorIds[] = $otherUserBean->getID(); $this->contributorIds = array_unique($this->contributorIds); $bean->contributorIds = implode(',', $this->contributorIds); if (!empty($this->publishedOn)) { $bean->publishedOn = R::isoDateTime($this->publishedOn); } else { $bean->publishedOn = null; } R::store($bean); }
public function removeUser(User $user) { $userBean = $user->bean(); $groupBean = $this->_bean; if ($groupBean !== null && $user !== null) { if (!$groupBean->isDefaultRegistered && !$groupBean->isDefaultAnonymous && !$groupBean->isEveryone) { unset($userBean->sharedGroupList[$groupBean->getID()]); R::store($userBean); $user->updateGroups(); } return false; } return true; }
<?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]);
public function impersonate(User $user) { if ($user->exists()) { $this->segment->set('impersonateUser', $user->id); Event\Authentication\Impersonate::pub($user, $this); return true; } return false; }
/** * @param User $user * @param bool|false $showAll * @return Post|null */ public static function userMostRecentPost(User $user, $showAll = false) { $bean = R::findOne('blog', ' where user_id = :user_id and ( true = :show_all or date(published_on) >= now() ) order by created limit 0, 1', ['user_id' => $user->bean()->getID(), 'show_all' => $showAll]); if ($bean !== null) { return new Post($bean->name, $bean); } return null; }
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'); } } }
use Enpowi\App; use Enpowi\Users\User; 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=',
<?php use Enpowi\App; use Enpowi\Users\User; use Enpowi\Users\Group; use Enpowi\Modules\DataOut; use Enpowi\Modules\Module; Module::is(); $app = App::get(); $auth = $app->authentication; $data = (new DataOut())->add('users', User::users())->add('availableGroups', Group::groups())->add('impersonateUser', $auth->isImpersonate() ? $auth->getUser() : [])->add('action', '')->out(); ?> <form v-module data="<?php echo $data; ?> " action="users/listService" data-done="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> <table class="table"> <tbody> <tr> <td></td> <th v-t>Email</th> <th v-t>Created</th> <td> <span v-show="impersonateUser.email">
<?php use Enpowi\Users\User; $tf->test('Adding a user', function (\Testify\Testify $tf) { $email = '*****@*****.**'; User::create($email, '123123123'); $user = new User($email); $tf->assertTrue($user->bean() !== null); }); $tf->test('Removing a user', function (\Testify\Testify $tf) { $email = '*****@*****.**'; User::create($email, '123123123'); (new User($email))->remove(); $user = new User($email); $tf->assertTrue($user->bean() === null); });
<?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);
<?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';
$passwordRepeat = App::param('passwordRepeat'); $update = App::paramBool('update'); $stopEmail = false; $stopPassword = false; if (empty($password)) { $stopPassword = true; } if (!$stopPassword && $password !== $passwordRepeat) { Module::paramRespond('passwordRepeat', 'Passwords do not match'); $stopPassword = true; } if (!$stopPassword && !User::isValidPassword($password)) { Module::paramRespond('password', 'Invalid'); $stopPassword = true; } if ($user->email !== $_user->email && !User::isEmailValid($_user->email)) { Module::paramRespond('email', 'Not a valid email'); $stopEmail = true; } if ($update) { if (!$stopEmail) { if ($user->email !== $_user->email && $user->updateEmail($_user->email)) { Module::successRespond('emailUpdated', 'Updated'); } } if (!$stopPassword) { if ($user->updatePassword($password)) { Module::successRespond('passwordUpdated', 'Password updated'); } } }
use RedBeanPHP\R; use Enpowi\Users\Group; use Enpowi\Users\User; use Enpowi\Users\Perm; use Enpowi\App; use Enpowi\Modules\Module; Module::run(); R::nuke(); App::log('setup', 'newSite'); //create groups $everyoneGroup = Group::create('Everyone', false, false, true); $anonymousGroup = Group::create('Anonymous', false, true); $registeredGroup = Group::create('Registered', true); $administratorGroup = Group::create('Administrator', false, false, false, true); //create first user & put him in admin group $administratorUser = User::create('admin', 'admin', true); $administratorGroup->addUser($administratorUser); //give Anonymous abilities Perm::create('user', 'login', $anonymousGroup); Perm::create('user', 'register', $anonymousGroup); Perm::create('user', 'forgot', $anonymousGroup); Perm::create('user', 'confirm', $anonymousGroup); //give registered abilities Perm::create('gallery', '*', $registeredGroup); Perm::create('user', 'view', $registeredGroup); Perm::create('user', 'logout', $registeredGroup); Perm::create('user', 'confirm', $registeredGroup); Perm::create('page', 'edit', $registeredGroup); //give Administrator group access to everything Perm::create('*', '*', $administratorGroup); //give everyone the ability to see modules with no security
<?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'; });