Compare commits
4 Commits
Leo/Backen
...
tonitch/fr
Author | SHA1 | Date | |
---|---|---|---|
9de4b06e75 | |||
123fa97611 | |||
1fad792be7 | |||
acd1262955
|
@ -15,7 +15,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
public class MockController {
|
public class MockController {
|
||||||
private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||||
public final UserService userService;
|
|
||||||
public final UserRepository userRepo;
|
public final UserRepository userRepo;
|
||||||
public final TokenRepository tokenRepo;
|
public final TokenRepository tokenRepo;
|
||||||
public final TokenService tokenService;
|
public final TokenService tokenService;
|
||||||
@ -27,8 +27,7 @@ public class MockController {
|
|||||||
ArrayList<User> mockUsers;
|
ArrayList<User> mockUsers;
|
||||||
|
|
||||||
|
|
||||||
public MockController(UserService userService, UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService){
|
public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService){
|
||||||
this.userService = userService;
|
|
||||||
this.tokenRepo = tokenRepo;
|
this.tokenRepo = tokenRepo;
|
||||||
this.userRepo = userRepo;
|
this.userRepo = userRepo;
|
||||||
this.tokenService = tokenService;
|
this.tokenService = tokenService;
|
||||||
@ -46,19 +45,19 @@ public class MockController {
|
|||||||
|
|
||||||
@PostMapping("/mock")
|
@PostMapping("/mock")
|
||||||
public void postMock(){
|
public void postMock(){
|
||||||
|
|
||||||
// user part
|
// user part
|
||||||
|
|
||||||
|
|
||||||
User herobrine = new User("brine","hero","admin@admin.com","behind","ShadowsLand",new Date(0), null,Role.Admin,passwordEncoder.encode("admin"));
|
User herobrine = new User("brine","hero","admin@admin.com","behind","ShadowsLand",new Date(0), null,Role.Admin,passwordEncoder.encode("admin"));
|
||||||
User joe = new User("Mama","Joe","student@student.com","roundabout","England",new Date(0), null,Role.Student,passwordEncoder.encode("student"));
|
User joe = new User("Mama","Joe","student@student.com","roundabout","England",new Date(0), null,Role.Student,passwordEncoder.encode("student"));
|
||||||
User meh = new User("Polo","Marco","secretary@secretary.com","a Box","Monaco",new Date(0), null,Role.Secretary,passwordEncoder.encode("secretary"));
|
User meh = new User("Polo","Marco","secretary@secretary.com","a Box","Monaco",new Date(0), null,Role.Secretary,passwordEncoder.encode("secretary"));
|
||||||
User joke = new User("Gaillard","Corentin","teacher@teacher.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
|
User joke = new User("Gaillard","Corentin","teacher@teacher.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
|
||||||
User jojo = new User("Bridoux","Justin","teacher2@teacher2.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
|
User jojo = new User("Bridoux","Justin","teacher2@teacher2.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
|
||||||
User lena = new User("Louille","Lena","inscriptionService@InscriptionService.com","no","yes",new Date(0), null,Role.InscriptionService,passwordEncoder.encode("inscriptionService"));
|
User lena = new User("Louille","Lena","inscriptionService@InscriptionService.com","no","yes",new Date(0), null,Role.InscriptionService,passwordEncoder.encode("inscriptionService"));
|
||||||
|
mockUsers = new ArrayList<>(Arrays.asList(herobrine,joe,meh,joke,lena,jojo));
|
||||||
|
|
||||||
mockUsers = new ArrayList<>(Arrays.asList(joke, herobrine, joe, meh, jojo));
|
userRepo.saveAll(mockUsers);
|
||||||
userService.saveAll(mockUsers);
|
|
||||||
userService.save(lena);
|
|
||||||
|
|
||||||
|
|
||||||
// Course / Curriculum part
|
// Course / Curriculum part
|
||||||
|
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
package ovh.herisson.Clyde;
|
|
||||||
|
|
||||||
import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess;
|
|
||||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
|
||||||
import org.hibernate.id.IdentifierGenerator;
|
|
||||||
|
|
||||||
import java.sql.*;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.GregorianCalendar;
|
|
||||||
|
|
||||||
public class RegNoGenerator implements IdentifierGenerator {
|
|
||||||
private final UserSaveCounter usv = UserSaveCounter.getInstance();
|
|
||||||
@Override
|
|
||||||
public Object generate(SharedSessionContractImplementor session, Object object) {
|
|
||||||
try{
|
|
||||||
JdbcConnectionAccess jdbccon = session.getJdbcConnectionAccess();
|
|
||||||
Connection conn = jdbccon.obtainConnection();
|
|
||||||
|
|
||||||
Statement statement = conn.createStatement();
|
|
||||||
|
|
||||||
int n = usv.getCount();
|
|
||||||
Calendar c = new GregorianCalendar();
|
|
||||||
int y = c.get(Calendar.YEAR);
|
|
||||||
String query = "select count(reg_no) + "+n+" from Users where reg_no/10000 = " + y%1000;
|
|
||||||
|
|
||||||
ResultSet set = statement.executeQuery(query);
|
|
||||||
long resp = 0;
|
|
||||||
if(set.next()){
|
|
||||||
resp = set.getLong(1)+((y%1000)*10000);
|
|
||||||
usv.increment();
|
|
||||||
}
|
|
||||||
|
|
||||||
conn.close();
|
|
||||||
statement.close();
|
|
||||||
|
|
||||||
return resp;
|
|
||||||
|
|
||||||
} catch (SQLException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,10 +5,13 @@ import org.springframework.data.repository.CrudRepository;
|
|||||||
import ovh.herisson.Clyde.Tables.User;
|
import ovh.herisson.Clyde.Tables.User;
|
||||||
|
|
||||||
public interface UserRepository extends CrudRepository<User, Long> {
|
public interface UserRepository extends CrudRepository<User, Long> {
|
||||||
|
|
||||||
User findById(long id);
|
User findById(long id);
|
||||||
|
|
||||||
User findByEmail(String email);
|
User findByEmail(String email);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Teacher")
|
@Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Teacher")
|
||||||
Iterable<User> findAllTeachers();
|
Iterable<User> findAllTeachers();
|
||||||
|
|
||||||
|
@ -5,15 +5,13 @@ import org.springframework.stereotype.Service;
|
|||||||
import ovh.herisson.Clyde.Repositories.UserRepository;
|
import ovh.herisson.Clyde.Repositories.UserRepository;
|
||||||
import ovh.herisson.Clyde.Tables.Role;
|
import ovh.herisson.Clyde.Tables.Role;
|
||||||
import ovh.herisson.Clyde.Tables.User;
|
import ovh.herisson.Clyde.Tables.User;
|
||||||
import ovh.herisson.Clyde.UserSaveCounter;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class UserService {
|
public class UserService {
|
||||||
private final UserRepository userRepo;
|
private final UserRepository userRepo;
|
||||||
private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||||
private final UserSaveCounter usc = UserSaveCounter.getInstance();
|
|
||||||
public UserService(UserRepository userRepo){
|
public UserService(UserRepository userRepo){
|
||||||
this.userRepo = userRepo;
|
this.userRepo = userRepo;
|
||||||
}
|
}
|
||||||
@ -108,19 +106,10 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public User save(User user){
|
public User save(User user){
|
||||||
usc.reset();
|
|
||||||
user.setPassword(passwordEncoder.encode(user.getPassword()));
|
user.setPassword(passwordEncoder.encode(user.getPassword()));
|
||||||
return userRepo.save(user);
|
return userRepo.save(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveAll(ArrayList<User> list){
|
|
||||||
//S'assure que le compteur est bien a 0
|
|
||||||
usc.reset();
|
|
||||||
userRepo.saveAll(list);
|
|
||||||
//Reset le compteur a zero pour les futurs ajouts
|
|
||||||
usc.reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Iterable<User> getAll(){
|
public Iterable<User> getAll(){
|
||||||
return userRepo.findAll();
|
return userRepo.findAll();
|
||||||
}
|
}
|
||||||
@ -142,5 +131,4 @@ public class UserService {
|
|||||||
public void delete(User user) {
|
public void delete(User user) {
|
||||||
userRepo.delete(user);
|
userRepo.delete(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package ovh.herisson.Clyde.Tables;
|
package ovh.herisson.Clyde.Tables;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import org.hibernate.annotations.GenericGenerator;
|
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
@ -10,8 +8,7 @@ import java.util.Date;
|
|||||||
@Table(name = "Users")
|
@Table(name = "Users")
|
||||||
public class User {
|
public class User {
|
||||||
@Id
|
@Id
|
||||||
@GenericGenerator(name = "userGen", type = ovh.herisson.Clyde.RegNoGenerator.class)
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
@GeneratedValue(generator = "userGen")
|
|
||||||
private Long regNo;
|
private Long regNo;
|
||||||
private String lastName;
|
private String lastName;
|
||||||
private String firstName;
|
private String firstName;
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
package ovh.herisson.Clyde;
|
|
||||||
|
|
||||||
public final class UserSaveCounter {
|
|
||||||
private static UserSaveCounter instance;
|
|
||||||
private int count = 0;
|
|
||||||
|
|
||||||
public void increment() {
|
|
||||||
this.count+=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCount() {
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void reset(){
|
|
||||||
this.count = 0;
|
|
||||||
}
|
|
||||||
public static UserSaveCounter getInstance(){
|
|
||||||
if (instance == null){
|
|
||||||
instance = new UserSaveCounter();
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,2 +1,3 @@
|
|||||||
spring.jpa.hibernate.ddl-auto=create-drop
|
spring.jpa.hibernate.ddl-auto=create-drop
|
||||||
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
|
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
|
||||||
|
spring.sql.init.mode=always
|
@ -23,7 +23,6 @@ import ovh.herisson.Clyde.Repositories.TokenRepository;
|
|||||||
import ovh.herisson.Clyde.Repositories.UserRepository;
|
import ovh.herisson.Clyde.Repositories.UserRepository;
|
||||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
|
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
|
||||||
import ovh.herisson.Clyde.Services.TokenService;
|
import ovh.herisson.Clyde.Services.TokenService;
|
||||||
import ovh.herisson.Clyde.Services.UserService;
|
|
||||||
import ovh.herisson.Clyde.Tables.Role;
|
import ovh.herisson.Clyde.Tables.Role;
|
||||||
import ovh.herisson.Clyde.Tables.Token;
|
import ovh.herisson.Clyde.Tables.Token;
|
||||||
import ovh.herisson.Clyde.Tables.User;
|
import ovh.herisson.Clyde.Tables.User;
|
||||||
@ -48,8 +47,6 @@ public class UserControllerTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TokenService tokenService;
|
private TokenService tokenService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private UserService userService;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -82,13 +79,12 @@ public class UserControllerTest {
|
|||||||
tokenRepository.deleteAll();
|
tokenRepository.deleteAll();
|
||||||
userRepository.deleteAll();
|
userRepository.deleteAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
//Verifie qu'un user qui n'a pas les permissions admin ou secretaire ne peut pas post
|
//Verifie qu'un user qui n'a pas les permissions admin ou secretaire ne peut pas post
|
||||||
public void userPostTest(){
|
public void userPostTest(){
|
||||||
User god = new User("god","god","admin@admin.com","everywhere","every",new Date(0), null, Role.Admin,"goddoesntneedpassword");
|
User god = new User("god","god","admin@admin.com","everywhere","every",new Date(0), null, Role.Admin,"goddoesntneedpassword");
|
||||||
Token godToken = new Token(god, tokenService.generateNewToken(), new Date());
|
Token godToken = new Token(god, tokenService.generateNewToken(), new Date());
|
||||||
userService.save(god);
|
userRepository.save(god);
|
||||||
tokenService.saveToken(godToken);
|
tokenService.saveToken(godToken);
|
||||||
|
|
||||||
//Can god post herobrine himself ?
|
//Can god post herobrine himself ?
|
||||||
@ -101,7 +97,7 @@ public class UserControllerTest {
|
|||||||
//Can noob post herobrine without authorizations (no)
|
//Can noob post herobrine without authorizations (no)
|
||||||
User noob = new User("boon","noob","noob@student.com","everywhere","every",new Date(0), null, Role.Student,"noob");
|
User noob = new User("boon","noob","noob@student.com","everywhere","every",new Date(0), null, Role.Student,"noob");
|
||||||
Token noobToken = new Token(noob, tokenService.generateNewToken(), new Date());
|
Token noobToken = new Token(noob, tokenService.generateNewToken(), new Date());
|
||||||
userService.save(noob);
|
userRepository.save(noob);
|
||||||
tokenService.saveToken(noobToken);
|
tokenService.saveToken(noobToken);
|
||||||
|
|
||||||
with().body(herobrine).contentType(ContentType.JSON).header("Authorization", noobToken.getToken()).when().request("POST", "/user").then().statusCode(401);
|
with().body(herobrine).contentType(ContentType.JSON).header("Authorization", noobToken.getToken()).when().request("POST", "/user").then().statusCode(401);
|
||||||
|
@ -7,7 +7,6 @@ import org.junit.jupiter.api.Test;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
|
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
|
||||||
import org.springframework.test.context.TestPropertySource;
|
import org.springframework.test.context.TestPropertySource;
|
||||||
import ovh.herisson.Clyde.Services.UserService;
|
|
||||||
import ovh.herisson.Clyde.Tables.Role;
|
import ovh.herisson.Clyde.Tables.Role;
|
||||||
import ovh.herisson.Clyde.Tables.User;
|
import ovh.herisson.Clyde.Tables.User;
|
||||||
|
|
||||||
@ -25,7 +24,6 @@ public class UserRepoTest {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setup(){
|
public void setup(){
|
||||||
userRepo.deleteAll();
|
|
||||||
User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand", new GregorianCalendar(2005, 4, 3).getTime(), null, Role.Admin,"admin");
|
User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand", new GregorianCalendar(2005, 4, 3).getTime(), null, Role.Admin,"admin");
|
||||||
userRepo.save(herobrine);
|
userRepo.save(herobrine);
|
||||||
}
|
}
|
||||||
@ -36,8 +34,8 @@ public class UserRepoTest {
|
|||||||
}
|
}
|
||||||
@Test
|
@Test
|
||||||
public void usertest(){
|
public void usertest(){
|
||||||
Assert.assertEquals("brine", userRepo.findByEmail("admin@admin.com").getLastName());
|
Assert.assertEquals("brine", userRepo.findById(1).getLastName());
|
||||||
Assert.assertTrue(new GregorianCalendar(2005, 4, 3).getTime().equals(userRepo.findByEmail("admin@admin.com").getBirthDate()));
|
Assert.assertTrue(new GregorianCalendar(2005, 4, 3).getTime().equals(userRepo.findById(1).getBirthDate()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -86,19 +86,18 @@ window.addEventListener('hashchange', () => {
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<div style=" margin:50px;">
|
|
||||||
<Suspense>
|
<Suspense>
|
||||||
|
|
||||||
<component :is="currentView" />
|
<component :is="currentView" />
|
||||||
</Suspense>
|
</Suspense>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
.container{
|
.container{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
display:grid;
|
display:grid;
|
||||||
grid-template-columns:[firstCol-start]70px[firstCol-end secondCol-start]auto[endCol];
|
grid-template-columns:[firstCol-start]70px[firstCol-end secondCol-start]auto[endCol];
|
||||||
grid-template-rows:[firstRow-start]61px[firstRow-end secondRow-start] auto [endRow];
|
grid-template-rows:[firstRow-start]61px[firstRow-end secondRow-start] auto [endRow];
|
||||||
@ -111,6 +110,8 @@ window.addEventListener('hashchange', () => {
|
|||||||
|
|
||||||
.page {
|
.page {
|
||||||
grid-area:page;
|
grid-area:page;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
place-self:center;
|
place-self:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,9 +56,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class='loginBox'>
|
<div class="setup">
|
||||||
|
|
||||||
<div v-if="loginPage">
|
<div v-if="loginPage">
|
||||||
|
<div class='loginBox' style="margin-top:30%;">
|
||||||
<form @submit.prevent="login(outputs.email,outputs.password);goBackHome();"class="form">
|
<form @submit.prevent="login(outputs.email,outputs.password);goBackHome();"class="form">
|
||||||
<h1 style="color:rgb(239,60,168); font-family: sans-serif;">
|
<h1 style="color:rgb(239,60,168); font-family: sans-serif;">
|
||||||
{{i18n("login.guest.signin")}}
|
{{i18n("login.guest.signin")}}
|
||||||
@ -74,13 +74,14 @@
|
|||||||
<div class="register">
|
<div class="register">
|
||||||
<a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a>
|
<a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="inputBox">
|
<div class="inputBox" style="margin-bottom:35px;">
|
||||||
<input type="submit" v-model="submitValue">
|
<input type="submit" v-model="submitValue">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
<div class='loginBox' style="margin-top:30%; margin-bottom:50%;">
|
||||||
<form class="form">
|
<form class="form">
|
||||||
<h1 style="color:rgb(239,60,168); font-family: sans-serif; text-align:center;">
|
<h1 style="color:rgb(239,60,168); font-family: sans-serif; text-align:center;">
|
||||||
{{i18n("login.guest.welcome")}}
|
{{i18n("login.guest.welcome")}}
|
||||||
@ -128,9 +129,12 @@
|
|||||||
<p>{{i18n("login.guest.country")}}</p>
|
<p>{{i18n("login.guest.country")}}</p>
|
||||||
<input type="text" v-model="outputs.country">
|
<input type="text" v-model="outputs.country">
|
||||||
</div>
|
</div>
|
||||||
<form novalidate enctype="multipart/form-data" class="inputBox">
|
<form class="inputBox"novalidate enctype="multipart/form-data">
|
||||||
<p>{{i18n("profile.picture").toUpperCase()}}</p>
|
<p>{{i18n("profile.picture").toUpperCase()}}</p>
|
||||||
|
<label class="browser">
|
||||||
|
Parcourir . . .
|
||||||
<input type="file" :disabled="imageSaved" @change="ppData = uploadProfilePicture($event.target.files); imageSaved = true;" accept="image/*">
|
<input type="file" :disabled="imageSaved" @change="ppData = uploadProfilePicture($event.target.files); imageSaved = true;" accept="image/*">
|
||||||
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<div class="inputBox">
|
<div class="inputBox">
|
||||||
<p>{{i18n("Curriculum").toUpperCase()}}</p>
|
<p>{{i18n("Curriculum").toUpperCase()}}</p>
|
||||||
@ -154,34 +158,25 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.Home{
|
|
||||||
position:absolute;
|
|
||||||
display: flex;
|
|
||||||
z-index: 100;
|
|
||||||
padding: 8px 16px;
|
|
||||||
color:rgb(255, 255, 255);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Home:hover{
|
.setup {
|
||||||
width:40px;
|
margin-left: auto;
|
||||||
background-color: black;
|
margin-right:auto;
|
||||||
border-radius:6px;
|
min-width:400px;
|
||||||
color:white;
|
|
||||||
transform: translate(0px ,1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
width:25%;
|
||||||
|
height:60%;
|
||||||
|
}
|
||||||
|
|
||||||
.loginBox {
|
.loginBox {
|
||||||
background-color: rgb(24,24,24);
|
background-color: rgb(24,24,24);
|
||||||
width: 400px;
|
|
||||||
display:flex;
|
display:flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 40px;
|
border-radius: 5%;
|
||||||
border-radius: 20px;
|
|
||||||
box-shadow:0 5px 25px #000000;
|
box-shadow:0 5px 25px #000000;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -190,9 +185,8 @@
|
|||||||
width:100%;
|
width:100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
|
||||||
align-items:center;
|
align-items:center;
|
||||||
gap: 15px;
|
gap: 3%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -200,12 +194,12 @@
|
|||||||
|
|
||||||
width:100%;
|
width:100%;
|
||||||
border: none;
|
border: none;
|
||||||
margin-right: 50px;
|
margin-right: 12.5%;
|
||||||
padding-left: 10px;
|
padding-left: 2.5%;
|
||||||
padding-top:10px;
|
padding-top:2.5%;
|
||||||
padding-bottom:10px;
|
padding-bottom:2.5%;
|
||||||
outline:none;
|
outline:none;
|
||||||
border-radius: 4px;
|
border-radius: 10px;
|
||||||
font-size:1.35em;
|
font-size:1.35em;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,8 +214,9 @@
|
|||||||
|
|
||||||
.register{
|
.register{
|
||||||
color:rgb(239,60,168);
|
color:rgb(239,60,168);
|
||||||
width: 100%;
|
width:70%;
|
||||||
display:flex;
|
margin-bottom:20px;
|
||||||
|
margin-top:20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,6 +245,21 @@ input[type=submit],button,select{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type=file]{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.browser{
|
||||||
|
display:inline-block;
|
||||||
|
cursor:pointer;
|
||||||
|
border-radius:20px;
|
||||||
|
background-color:rgb(239,60,168);
|
||||||
|
padding:5%;
|
||||||
|
font-size:1.35em;
|
||||||
|
font-family:sans-serif;
|
||||||
|
background:#FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
button:active ,.switchpage:active{
|
button:active ,.switchpage:active{
|
||||||
opacity:0.8;
|
opacity:0.8;
|
||||||
|
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
body {
|
body {
|
||||||
background-color: rgb(53, 25, 60);
|
background-color: rgb(53, 25, 60);
|
||||||
margin:0;
|
margin:0;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
#app {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user