View Source SecureX.Roles (SecureX v1.1.0)

Contains CRUD For Roles.

Link to this section Summary

Functions

Add a Role. You can send either Atom Map or String Map to add a Role. If you have existing resources, it will create default permissions against this role.

Delete a Role. All Permissions and UserRoles will be removed against this role.

Get a Role.

Get list of Roles with Permissions.

Update a Role. You can update any role along with its permissions if you want, if you pass :permissions in your params. You can send either Atom Map or String Map to update sRole. It will automatically update that role_id in UserRoles and Permissions table, if you intend to update any role.

Link to this section Functions

@spec add(map()) :: tuple()

Add a Role. You can send either Atom Map or String Map to add a Role. If you have existing resources, it will create default permissions against this role.

examples

Examples

iex> add(%{"role" => "Super Admin"})
%Role{
  id: "super_admin",
  name: "Super Admin",
  permission: [
    %{resource_id: "users", permission: -1, role_id: "super_admin"},
    %{resource_id: "employees", permission: -1, role_id: "super_admin"},
    %{resource_id: "customer", permission: -1, role_id: "super_admin"}
  ]
}

Your will get Role struct() with all permissions created for the resources if they exist. list()of permissions you will get in simple map().

@spec delete(map()) :: tuple()

Delete a Role. All Permissions and UserRoles will be removed against this role.

examples

Examples

iex> delete(%{"id" => "admin")
%Role{
  id: admin,
  name: "Admin",
  permissions: :successfully_removed_permissions,
  user_roles: :successfully_removed_user_roles
}
@spec get(map()) :: tuple()

Get a Role.

examples

Examples

iex> get(%{"role" => "super_admin"})
%Role{
  id: "super_admin",
  name: "Super Admin",
  permission: [
    %{resource_id: "users", permission: -1, role_id: "super_admin"},
    %{resource_id: "employees", permission: -1, role_id: "super_admin"},
    %{resource_id: "customer", permission: -1, role_id: "super_admin"}
  ]
}
Link to this function

list(page \\ nil, page_size \\ 10)

View Source
@spec list(number(), number()) :: tuple()

Get list of Roles with Permissions.

examples

Examples

iex> list()
[
%Role{
  id: "super_admin",
  name: "Super Admin",
  permission: [
    %{resource_id: "users", permission: -1, role_id: "super_admin"},
    %{resource_id: "employees", permission: -1, role_id: "super_admin"},
    %{resource_id: "customer", permission: -1, role_id: "super_admin"}
  ]
}

]

@spec update(map()) :: tuple()

Update a Role. You can update any role along with its permissions if you want, if you pass :permissions in your params. You can send either Atom Map or String Map to update sRole. It will automatically update that role_id in UserRoles and Permissions table, if you intend to update any role.

examples

Examples

iex> update(%{"id" => "super_admin", "role" => "Admin", "permissions" => [%{"resource_id" => "users", "permission" => 4}]})
{:ok, %Role{
        id: admin,
        name: "Admin",
        permission: [%{resource_id: "users", permission: 4, role_id: "admin"}]
    }
}

It will return with permissions that you sent in params to change.