Skip to content

Commit

Permalink
Merge branch 'develop' into feature-ufform-refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
alexweissman committed Mar 20, 2018
2 parents cdbc425 + fc6d78b commit 3372e2b
Show file tree
Hide file tree
Showing 127 changed files with 10,951 additions and 1,868 deletions.
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Forces Git to handle line endings, preventing any changes (like from editors or tools) being commited.
# Also improves reliability of tools like Git Lens.
* text=auto

# NPM always rewrites package.json and package-lock.json to lf.
# This stops the annoying tendancy for false positive changes to appear under Windows.
package.json text=lf
package-lock.json text=lf
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<!-- Love userfrosting? Please consider supporting our collective:
👉 https://opencollective.com/userfrosting/donate -->
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,12 @@ public/css/min/*
# Ignore personal config files (v0.3.x)
app/config-userfrosting.php

# Physical database storage for containers (?)
app/database/userfrosting.db

# Ignore vendor assets
app/assets/*

# Ignore Vagrant & Homestead VM
vagrant/Homestead/
.vagrant/*
68 changes: 64 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
# Change Log

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- Use locale requested by browser when possible for guests (#718)
- Add locale drop down to registration page, with the currently applied locale selected (#718)
- Integrated improvements from [v4.0.25-Alpha](#v4025-alpha)
- Added tests for migrator and it's components.
- Added tests for `migrate` Bakery command and sub-commands.
- Added `database` option for `migrate` and `migrate:*` Bakery commands
- New `isProduction` method for Bakery command to test if app is in production mode
- `migrate` and `migrate:*` Bakery command now require confirmation before execution when in production mode.
- Added `migrate:status` Bakery command
- Added `RefreshDatabase` test Trait to use a fresh database for a test
- Added `TestDatabase` test Trait to use the in memory database for a test
- Implement `withRaw`, `withSum`, `withAvg`, `withMin`, `withMax` (see https://github.com/laravel/framework/pull/16815)

### Changed
- Moved `migrate` Bakery command and sub-commands to the `Core` sprinkle.
- Re-written Migrator. The migrator is now detached from the console and Bakery. The migrator is now included in the ServicesProvider and included in the `Core` sprinkle. (#795)
- Makes the `semantic versioning` part of a migration class optional. Migrations classes can now have the `UserFrosting\Sprinkle\{sprinkleName}\Database\Migrations` namespace, or any other sub-namespace.

### Deprecated
- Migrations should now extends `UserFrosting\Sprinkle\Core\Database\Migration` instead of `UserFrosting\System\Bakery\Migration`.
- Migrations dependencies property should now be a static property.
- Trait `\UserFrosting\Tests\DatabaseTransactions` has been deprecated. Tests should now use the `\UserFrosting\Sprinkle\Core\Tests\DatabaseTransactions` trait instead. (#826)

### Removed
- The console IO instance is not available anymore in migrations.
- Removed the `io` property from migration classes.
- Removed Bakery `projectRoot` property. Use the `\UserFrosting\ROOT_DIR` constant instead.
- Removed `pretend` option from Bakery `migrate:refresh` and `migrate:reset` commands.

### Fixed

### Security

## v4.1.16-alpha
- Fix for `merge` bundling rule (#660)
- Fix for undefined variable exception under strict mode in `ufAlerts` (#809)
- Fix for site cache reset upon login (#828)
- Changed global cache tag to proper prefix
- Fix broken alert message in registration process (#843)
- Add partial Turkish translation

## v4.1.15-alpha
- Refactor `Password` into a instantiable `Hasher` class, service, and `Password` facade (#827)
- Change default hash cost back to 10 and fix legacy hash detection issue
Expand Down Expand Up @@ -29,7 +78,7 @@
- Change "remember me" text
- Improve table tool buttons
- Twig extensions now implement `Twig_Extension_GlobalsInterface` as required by https://twig.symfony.com/doc/2.x/advanced.html#id1 (#788)
- Display element based on permissions for group list/info pages
- Display element based on permissions for group list/info pages
- Factor the admin user creation out of migrations and into its own Bakery command (See #778)
- Bakery `clear-cache` command now clears Twig and router cache (Fix #750)
- Add Russian translations
Expand Down Expand Up @@ -163,6 +212,17 @@

See [http://learn.userfrosting.com/upgrading/40-to-41](Upgrading 4.0.x to 4.1.x documentation) for complete list of changes and breaking changes.

## v4.0.25-Alpha
- Support npm for frontend vendor assets, and deprecation of bower (#737)
- Duplicate frontend vendor assets are no longer downloaded (#727)
- Detect incompatibilites between frontend vendor assets (related to #727)
- Improved reliability of generated base URL, especially when using docker
- Fixed syntax error in Portugese translations
- Minimise verbosity of assets build scripts when not in 'dev' mode
- Fix to stop bower complaining about sudo when using docker
- The `assetLoader` service has been deprecated, and may be removed in the future.
- **Potential breaking change:** Some packages like `Handlebars` are organised differently at npm. If referencing vendor assets introduced by UF, make sure they are still correct.

## v4.0.24-alpha
- Fixes to nginx config file, and add location block for LE acme challenge
- Fix JS errors when `#alerts-page` is not present on a page
Expand Down Expand Up @@ -360,7 +420,7 @@ See [http://learn.userfrosting.com/upgrading/40-to-41](Upgrading 4.0.x to 4.1.x
- Use Laravel's Schema interface to create tables and default rows, instead of constructing them with SQL

## v0.3.1.20
- Added `pushAlert()`,`clearAlerts()` in `public/js/userfrosting.js` and updated `flashAlerts()`
- Added `pushAlert()`,`clearAlerts()` in `public/js/userfrosting.js` and updated `flashAlerts()`
- Revert changes to User::fresh() but leave comment regarding upgrading Eloquent

## v0.3.1.19
Expand Down Expand Up @@ -487,7 +547,7 @@ See [http://learn.userfrosting.com/upgrading/40-to-41](Upgrading 4.0.x to 4.1.x
- [Theming](https://v3.userfrosting.com/components/#theming)
- [Plugins](https://v3.userfrosting.com/components/#plugins)

## v0.2.1
## v0.2.1
- Implemented db-driven menu system. Menu items are pulled from the database, and can be modified via plugins.
- Implemented backend templating of forms and tables via [Bootsole](https://github.com/alexweissman/bootsole).

Expand Down Expand Up @@ -524,7 +584,7 @@ See [http://learn.userfrosting.com/upgrading/40-to-41](Upgrading 4.0.x to 4.1.x
- Included better functions for sanitizing user input, validating user ip, generating csrf (cross-site request forgery) tokens - thanks to contributor @r3wt

## v0.1.3
- Root account (user id = 1) : created upon installation, cannot be deleted or disabled.
- Root account (user id = 1) : created upon installation, cannot be deleted or disabled.
- Special color scheme for when logged in as root user.
- Installer now guides user through creation of root account
- Moved common JS and CSS includes to "includes.php"
Expand Down
43 changes: 30 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
# UserFrosting 4.1

[https://www.userfrosting.com](https://www.userfrosting.com)

[![Build Status](https://travis-ci.org/userfrosting/UserFrosting.svg?branch=master)](https://travis-ci.org/userfrosting/UserFrosting)
[![Join the chat at https://chat.userfrosting.com/channel/support](https://demo.rocket.chat/images/join-chat.svg)](https://chat.userfrosting.com/channel/support)
[![Backers on Open Collective](https://opencollective.com/userfrosting/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/userfrosting/sponsors/badge.svg)](#sponsors)

[![Click here to lend your support to: UserFrosting: A secure, modern user management system for PHP and make a donation at pledgie.com !](https://pledgie.com/campaigns/29583.png?skin_name=chrome)](https://pledgie.com/campaigns/29583)

[https://www.userfrosting.com](https://www.userfrosting.com)
<a href="https://opencollective.com/userfrosting#backer" target="_blank">
<img src="https://opencollective.com/userfrosting/donate/button.png?color=blue" width=300 />
</a>

If you simply want to show that you like this project, or want to remember it for later, you should **star**, not **fork**, this repository. Forking is only for when you are ready to create your own copy of the code to work on.

## By [Alex Weissman](https://alexanderweissman.com)

Copyright (c) 2017, free to use in personal and commercial software as per the [license](LICENSE.md).
Copyright (c) 2018, free to use in personal and commercial software as per the [license](LICENSE.md).

UserFrosting is a secure, modern user management system written in PHP and built on top of the [Slim Microframework](http://www.slimframework.com/), [Twig](http://twig.sensiolabs.org/) templating engine, and [Eloquent](https://laravel.com/docs/5.4/eloquent#introduction) ORM.

Expand Down Expand Up @@ -61,7 +64,7 @@ UserFrosting seeks to balance modern programming principles, like DRY and MVC, w

Run `php bakery test` from the root project directory. Any tests included in `sprinkles/*/tests` will be run.

## About the Developers
## Development Team

### Alexander Weissman

Expand All @@ -73,21 +76,23 @@ Louis's a civil engineer in Montréal, Québec who also has a passion for coding

### Jordan Mele

Jordan's a developer at Mayvin Training and a student studying Computer Science at the University of Wollongong. His passion is creating software-based solutions to overcomplicated problems, without taking control away from the user. He's also Australian.
Jordan's a former developer of Mayvin Training and a student studying Computer Science at the University of Wollongong, Australia. His passion is creating software-based solutions to overcomplicated problems, while keeping the user in control.

### Sarah Baghdadi

Sarah is UserFrosting's UX specialist and frontend designer. In addition to her work on the UF application itself, she is responsible for the amazing design of https://www.userfrosting.com and https://learn.userfrosting.com.

### Mike Jacobs

Mike's a programmer and IT specialist for a small business in New Hampshire, and works on open source projects when he's not camping or traveling.

### Srinivas Nukala

Srinivas's a web applications architect, with a passion for open source technologies. He is experienced in building SaaS (software as a service) web applications and enjoys working on open source projects and contributing to the community. He has a Masters in Computer Science from Pune University, India.

## Thanks to our translators!
## Contributing

This project exists thanks to all the people who contribute. If you're interested in contributing to the UserFrosting codebase, please see our [contributing guidelines](.github/CONTRIBUTING.md) as well as our [style guidelines](STYLE-GUIDE.md).

<a href="graphs/contributors"><img src="https://opencollective.com/userfrosting/contributors.svg?width=890" /></a>

### Thanks to our translators!

- Louis Charette (@lcharette) - French
- Karuhut Komol (@popiazaza) - Thai
Expand All @@ -101,7 +106,19 @@ Srinivas's a web applications architect, with a passion for open source technolo
- @X-Anonymous-Y - German
- Dmitriy (@rendername) - Russian
- Amin Akbari (@aminakbari) - Farsi
- Dumblledore - Turkish

## Contributing
## Supporting UserFrosting

### Backers

Backers help us continue to develop UserFrosting by pledging a regular monthly contribution of $5 or more. [[Become a backer](https://opencollective.com/userfrosting#contribute)]

<a href="https://opencollective.com/userfrosting#backers" target="_blank"><img src="https://opencollective.com/userfrosting/backers.svg?width=890"></a>

#### Sponsors

Support this project by becoming a sponsor. Sponsors have contributed a total of $500 or more to UserFrosting (either as an ongoing backer or one-time contributions). Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/userfrosting#sponsor)]

Please see our [contributing guidelines](.github/CONTRIBUTING.md) as well as our [style guidelines](STYLE-GUIDE.md).
[![USOR Games](sponsors/usor.png)](https://usorgames.com)
[![Next Generation Internet](sponsors/nextgi.png)](https://nextgi.com)
25 changes: 25 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
require 'json'
require 'yaml'

VAGRANTFILE_API_VERSION ||= "2"
confDir = $confDir ||= File.expand_path("vagrant/homestead", File.dirname(__FILE__))

homesteadYamlPath = "vagrant/bootstrap.yaml"
afterScriptPath = "vagrant/after.sh"
aliasesPath = "vagrant/aliases"

require File.expand_path(confDir + '/scripts/homestead.rb')

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
if File.exists? aliasesPath then
config.vm.provision "file", source: aliasesPath, destination: "~/.bash_aliases"
end

if File.exists? homesteadYamlPath then
Homestead.configure(config, YAML::load(File.read(homesteadYamlPath)))
end

if File.exists? afterScriptPath then
config.vm.provision "shell", path: afterScriptPath
end
end
9 changes: 8 additions & 1 deletion app/defines.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace UserFrosting;

// Some standard defines
define('UserFrosting\VERSION', '4.1.15-alpha');
define('UserFrosting\VERSION', '4.2.0-alpha');
define('UserFrosting\DS', '/');
define('UserFrosting\PHP_MIN_VERSION', '5.6');
define('UserFrosting\DEBUG_CONFIG', false);
Expand All @@ -18,6 +18,7 @@
// The directory containing APP_DIR. Usually, this will contain the entire website.
define('UserFrosting\ROOT_DIR', realpath(__DIR__ . '/..'));

// Directory names
define('UserFrosting\APP_DIR_NAME', basename(__DIR__));
define('UserFrosting\BUILD_DIR_NAME', 'build');
define('UserFrosting\CACHE_DIR_NAME', 'cache');
Expand Down Expand Up @@ -50,3 +51,9 @@
define('UserFrosting\SRC_DIR_NAME', 'src');
define('UserFrosting\TEMPLATE_DIR_NAME', 'templates');
define('UserFrosting\FACTORY_DIR_NAME', 'factories');
define('UserFrosting\PUBLIC_DIR_NAME', 'public');

// Full path to frontend vendor asset directories
define('UserFrosting\ASSET_DIR', APP_DIR_NAME . DS . ASSET_DIR_NAME);
define('UserFrosting\NPM_ASSET_DIR', ASSET_DIR . DS . 'node_modules');
define('UserFrosting\BOWER_ASSET_DIR', ASSET_DIR . DS . 'bower_components');
28 changes: 0 additions & 28 deletions app/sprinkles/account/bower.json

This file was deleted.

5 changes: 5 additions & 0 deletions app/sprinkles/account/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,10 @@
"psr-4": {
"UserFrosting\\Sprinkle\\Account\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"UserFrosting\\Sprinkle\\Account\\Tests\\": "tests/"
}
}
}
Loading

0 comments on commit 3372e2b

Please sign in to comment.