Changes between Version 1 and Version 2 of UseCaseScenarios/scenario2


Ignore:
Timestamp:
09/28/25 20:52:25 (35 hours ago)
Author:
221007
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseScenarios/scenario2

    v1 v2  
    1717
    1818Доколку сите податоци се валидни, лозинката се хашира користејќи безбеден алгоритам (BCrypt), по што се креира нов кориснички објект со основна улога, обично **ROLE_USER**, и се снима во базата на податоци. Регистрираниот корисник добива потврда за креирањето на својот профил, и е редиректиран да се најави со истиот креиран профил.
     19
     20==== SQL queries за правилно извршување на акциите ====
     21
     22Следната низа од квериња е преведена од show.sql=true property во Spring, со цел да се види што е правилната низа на операции кои се извршуваат од кога корисникот го активира копчето за регистрирање.
     23
     24{{{
     25-- Проверка дали постои корисник со внесената email адреса
     26SELECT
     27    user_id,
     28    created_at,
     29    email,
     30    is_active,
     31    name,
     32    password_hash,
     33    surname
     34FROM reportiumuser
     35WHERE email = :typed_email;
     36
     37-- Вметнување на корисник во главната табела од ReportiumUser
     38INSERT INTO reportiumuser (
     39    created_at,
     40    email,
     41    is_active,
     42    name,
     43    password_hash,
     44    surname
     45)
     46VALUES (?, ?, ?, ?, ?, ?);
     47
     48-- Тригер кој прави автоматски профил за новиот корисник
     49
     50CREATE FUNCTION create_profile_automatically_when_user_comes() RETURNS TRIGGER AS $$
     51BEGIN
     52    INSERT INTO UserProfile (user_id, role_id, username)
     53    VALUES (NEW.user_id, 2, NEW.name || ' ' || NEW.surname);
     54    RETURN NEW;
     55END;
     56$$ LANGUAGE plpgsql;
     57
     58CREATE TRIGGER trg_create_profile_for_user
     59AFTER INSERT ON ReportiumUser
     60FOR EACH ROW
     61EXECUTE FUNCTION create_profile_automatically_when_user_comes();
     62
     63-- Го пребарува корисникот кој е внесен по profile_id, кое веќе постои
     64SELECT
     65    profile_id,
     66    profile_created_at,
     67    user_id,
     68    role_id,
     69    username
     70FROM userprofile
     71WHERE user_id = ?;
     72
     73-- Избира default улога
     74SELECT
     75    role_id,
     76    description,
     77    role_name
     78FROM role
     79WHERE role_id = :default;
     80
     81-- Вметнува лог дека е регистриран нов корисник
     82INSERT INTO userprofilelog (
     83    change_description,
     84    changed_at,
     85    profile_id
     86)
     87VALUES (?, ?, ?);
     88}}}