Added possibility to change its own username.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
note
|
||||
description: "API providing user related features."
|
||||
date: "$Date: 2015-02-13 13:08:13 +0100 (ven., 13 févr. 2015) $"
|
||||
revision: "$Revision: 96616 $"
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
CMS_USER_API
|
||||
@@ -14,6 +14,34 @@ inherit
|
||||
create
|
||||
make
|
||||
|
||||
feature -- Validation
|
||||
|
||||
is_valid_username (a_name: READABLE_STRING_32): BOOLEAN
|
||||
local
|
||||
c: CHARACTER_32
|
||||
do
|
||||
if a_name.is_empty or a_name.is_whitespace then
|
||||
Result := False
|
||||
elseif a_name[1].is_space then
|
||||
Result := False
|
||||
elseif a_name[a_name.count].is_space then
|
||||
Result := False
|
||||
else
|
||||
Result := True
|
||||
across
|
||||
a_name as ic
|
||||
until
|
||||
not Result
|
||||
loop
|
||||
c := ic.item
|
||||
if c.is_alpha_numeric or c = '-' or c = '_' then
|
||||
else
|
||||
Result := False
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Access: user
|
||||
|
||||
user_by_id (a_id: like {CMS_USER}.id): detachable CMS_USER
|
||||
@@ -77,6 +105,18 @@ feature -- Change User
|
||||
end
|
||||
end
|
||||
|
||||
update_username (a_user: CMS_USER; a_new_username: READABLE_STRING_32)
|
||||
-- Update username of `a_user' to `a_new_username'.
|
||||
require
|
||||
has_id: a_user.has_id
|
||||
valid_user_name: is_valid_username (a_new_username)
|
||||
user_by_name (a_new_username) = Void
|
||||
do
|
||||
reset_error
|
||||
storage.update_username (a_user, a_new_username)
|
||||
error_handler.append (storage.error_handler)
|
||||
end
|
||||
|
||||
update_user (a_user: CMS_USER)
|
||||
-- Update user `a_user'.
|
||||
require
|
||||
|
||||
Reference in New Issue
Block a user