Browse Source

Loggined user funcs for front-end templates

Vova Tkach 6 years ago
parent
commit
2d58d6bb74
3 changed files with 86 additions and 0 deletions
  1. 2 0
      engine/fetdata/fetdata.go
  2. 74 0
      engine/fetdata/user.go
  3. 10 0
      hosts/localhost/template/header.html

+ 2 - 0
engine/fetdata/fetdata.go

@@ -8,6 +8,8 @@ import (
 type FERData struct {
 	Wrap    *wrapper.Wrapper
 	DataRow interface{}
+
+	bufferUser *utils.MySql_user
 }
 
 func New(wrap *wrapper.Wrapper, drow interface{}) *FERData {

+ 74 - 0
engine/fetdata/user.go

@@ -0,0 +1,74 @@
+package fetdata
+
+import (
+	"golang-fave/utils"
+)
+
+func (this *FERData) userToBuffer() {
+	if this.bufferUser == nil {
+		user := utils.MySql_user{}
+		if this.Wrap.S.GetInt("UserId", 0) > 0 {
+			err := this.Wrap.DB.QueryRow(`
+				SELECT
+					id,
+					first_name,
+					last_name,
+					email,
+					admin,
+					active
+				FROM
+					users
+				WHERE
+					id = ?
+				LIMIT 1;`,
+				this.Wrap.S.GetInt("UserId", 0),
+			).Scan(
+				&user.A_id,
+				&user.A_first_name,
+				&user.A_last_name,
+				&user.A_email,
+				&user.A_admin,
+				&user.A_active,
+			)
+			if err != nil {
+				this.Wrap.LogError(err.Error())
+			}
+		}
+		this.bufferUser = &user
+	}
+}
+
+func (this *FERData) UserIsLoggedIn() bool {
+	this.userToBuffer()
+	return this.bufferUser.A_id > 0
+}
+
+func (this *FERData) UserID() int {
+	this.userToBuffer()
+	return this.bufferUser.A_id
+}
+
+func (this *FERData) UserFirstName() string {
+	this.userToBuffer()
+	return this.bufferUser.A_first_name
+}
+
+func (this *FERData) UserLastName() string {
+	this.userToBuffer()
+	return this.bufferUser.A_last_name
+}
+
+func (this *FERData) UserEmail() string {
+	this.userToBuffer()
+	return this.bufferUser.A_email
+}
+
+func (this *FERData) UserIsAdmin() bool {
+	this.userToBuffer()
+	return this.bufferUser.A_admin > 0
+}
+
+func (this *FERData) UserIsActive() bool {
+	this.userToBuffer()
+	return this.bufferUser.A_active > 0
+}

+ 10 - 0
hosts/localhost/template/header.html

@@ -46,4 +46,14 @@
 				<div><b>RequestURI:</b> {{$.Data.RequestURI}}</div>
 				<div><b>RequestURL:</b> {{$.Data.RequestURL}}</div>
 				<div><b>RequestGET:</b> {{$.Data.RequestGET}}</div>
+			</div>
+			<div class="container some-text pt-3">
+				<h2>User</h2>
+				<div><b>UserIsLoggedIn:</b> {{$.Data.UserIsLoggedIn}}</div>
+				<div><b>UserID:</b> {{$.Data.UserID}}</div>
+				<div><b>UserFirstName:</b> {{$.Data.UserFirstName}}</div>
+				<div><b>UserLastName:</b> {{$.Data.UserLastName}}</div>
+				<div><b>UserEmail:</b> {{$.Data.UserEmail}}</div>
+				<div><b>UserIsAdmin:</b> {{$.Data.UserIsAdmin}}</div>
+				<div><b>UserIsActive:</b> {{$.Data.UserIsActive}}</div>
 			</div>