Skip to content

Commit ace0ff5

Browse files
committed
Merge branch 'dev'
2 parents e255ba5 + ebcd745 commit ace0ff5

884 files changed

Lines changed: 91056 additions & 24425 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
*.komodoproject
22
.DS_Store
3-
_meta/*
3+
_meta/*
4+
public/test/*
5+
ROLES.md
6+
userfrosting/config-userfrosting.php

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Change Log
2+
3+
## v0.3.1
4+
5+
- Improved initialization routine as middleware
6+
- Implemented "remember me" for persistent sessions - see https://github.com/gbirke/rememberme
7+
- Converted page templates to inheritance architecture, using Twig `extends`
8+
- Start using the `.twig` extension for template files
9+
- All content is now part of a theme, and site can be configured so that one theme is the default theme for unauthenticated users
10+
- User session stored via `user_id`, rather than the entire User object
11+
- Data model is now built on Eloquent, instead of in-house
12+
- Cleaned up some of the per-page Javascript, refactoring repetitive code
13+
- Implement server-side pagination
14+
- Upgrade to Tablesorter v2.23.4
15+
- Switch from DateJS to momentjs
16+
- Switch to jQueryValidation from FormValidation
17+
- Implement basic interface for modifying group authorization rules
18+
- User events - timestamps for things like sign-in, sign-up, password reset, etc are now stored in a `user_event` table
19+
- Wrapper class Notification for sending emails, other notifications to users
20+
- Remove username requirement for password reset. It is more likely that an attacker would know the user's username, than the user themselves. For the next version, we can try to implement some real multi-factor authentication.
21+
- When a user creates another user, they don't need to set a password. Instead, an email is sent out to the new user, with a token allowing them to set their own password.
22+
- Admins can manually generate a password reset request for another user, or directly change the user's password.

README.md

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# UserFrosting v0.3.0
1+
# UserFrosting v0.3.1 (development)
22

33
http://www.userfrosting.com
44

@@ -14,44 +14,38 @@ Copyright (c) 2015, free to use in personal and commercial software as per the [
1414

1515
UserFrosting is a secure, modern user management system written in PHP and built on top of the [Slim Microframework](http://www.slimframework.com/) and the [Twig](http://twig.sensiolabs.org/) templating engine.
1616

17-
## Installation
17+
## Migrating from UF's classic data model to Eloquent:
1818

19-
Please see our [installation guide](http://www.userfrosting.com/installation/).
19+
```
20+
// Instead of...
21+
$user = UserLoader::fetch(1); // Fetch User with id=1
2022
21-
## Troubleshooting
23+
// You can do...
24+
$user = User::find(1);
2225
23-
If you are having trouble installing UserFrosting, please read our [troubleshooting guide](http://www.userfrosting.com/troubleshooting) first!
2426
25-
If you are generally confused about the structure and layout of the code, or it doesn't look like the kind of PHP code that you're used to, please read [Navigating UserFrosting](http://www.userfrosting.com/navigating).
27+
// Instead of...
28+
$user = UserLoader::fetch("alex", "user_name"); // Fetch User with user_name = "alex"
2629
27-
If you want a good tour of the code base, we recommend going through our [tutorials](http://www.userfrosting.com/tutorials).
30+
// You can do...
31+
$user = User::where("user_name", "alex")->first();
2832
29-
## Features
33+
// Instead of...
34+
UserLoader::exists("[email protected]", "email");
3035
31-
#### Login page
32-
![Login page](/screenshots/login.png "Login page")
33-
#### Dashboard (thanks to [Start Bootstrap](http://startbootstrap.com))
34-
![Admin dashboard](/screenshots/dashboard.png "Admin dashboard")
35-
#### User list page
36-
![User list](/screenshots/users.png "User list page")
37-
#### Create/update user dialog with validation
38-
![Create/update user user](/screenshots/update_user.png "Create/update user dialog")
39-
#### Group management
40-
![Group management](/screenshots/groups.png "Group management page")
41-
#### Site settings
42-
![Site settings](/screenshots/site_settings.png "Site settings page")
36+
// You can do...
37+
( User::where("email", "[email protected]")->first() ? true : false );
4338
44-
## Mission Objectives
45-
46-
UserFrosting seeks to balance modern programming principles, like DRY and MVC, with a shallow learning curve for new developers. Our goals are to:
47-
48-
- Create a fully-functioning user management script that can be set up in just a few minutes
49-
- Make it easy for users to quickly adapt the code for their needs
50-
- Introduce novice developers to best practices such as separation of concerns and DRY programming
51-
- Introduce novice developers to modern constructs such as front-end controllers, RESTful URLs, namespacing, and object-oriented modeling
52-
- Build on existing, widely used server- and client-side components
53-
- Clean, consistent, and well-documented code
39+
// Instead of...
40+
$users = UserLoader::fetchAll();
5441
42+
// You can do...
43+
$users = User::queryBuilder()->get(); // If you want an array of User objects (not indexed by id)
44+
// or...
45+
$users = User::all(); // If you want an Eloquent Collection of User objects
46+
// or...
47+
$users = User::all()->getDictionary(); // If you want an array of User objects (indexed by id)
48+
```
5549

5650
## What's new in 0.3.0
5751

@@ -83,6 +77,7 @@ http://www.userfrosting.com/components/#plugins
8377

8478
- URL Routing and micro-framework: [Slim](http://www.slimframework.com/)
8579
- Templating: [Twig](http://twig.sensiolabs.org/)
80+
- Data Model: [Eloquent](http://laravel.com/docs/5.1/eloquent#introduction)
8681

8782
## Why UserFrosting?
8883

TODO.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

public/css/bootstrap-custom.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,7 @@
2121
label.label-switch {
2222
margin-top: 5px;
2323
}
24+
25+
form textarea {
26+
resize: vertical; /* user can resize vertically, but width is fixed */
27+
}

public/css/formValidation/formValidation.css

Lines changed: 0 additions & 164 deletions
This file was deleted.

public/css/min/common.min.css

Lines changed: 0 additions & 19 deletions
This file was deleted.

public/css/min/dashboard.min.css

Lines changed: 0 additions & 21 deletions
This file was deleted.

public/css/min/loggedout.min.css

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)